使用jQuery更改jQuery移动按钮的值

想知道你是否可以帮助我。 我似乎在使用jQuery更改jQuery Mobile按钮的文本时遇到问题。

$("#myButton .ui-btn-text").text("New text"); 

建议用于相关问题的上述代码似乎不起作用。

也不是:

 $("#myButton").attr(value,"New Test"); 

我按钮的代码如下:

  

我会感谢任何反馈人员。 谢谢

更新2
我正在研究另一个问题的小提琴,我注意到jQuery Mobile 1.0b2的标记有点不同:

 
Show Submit Button

使用此标记,您需要执行以下操作来更改按钮的文本:

 $('#myButton').prev('span').find('span.ui-btn-text').text("Next Text"); 

更新
信用到期的信用 – 事实certificate,@ naugtur对这个问题的答案,与我的编辑完全相同, 我纠正我的原始答案之前发布了。


我对jQuery Mobile不是很熟悉,而且当我最初回答时,你使用按钮的这一事实没有注册。 这是我更新的答案,其中有一个工作示例,说明如何执行此操作。

,jQuery Mobile似乎隐藏了元素并创建了一个新的元素,其样式看起来像按钮。 这就是为什么当您尝试使用的id作为选择器来获取和设置文本时,它不起作用,因为没有您在屏幕上看到的文本。 生成的标记看起来像这样

    My Value        

我没有尝试过足够的例子来完全自信,但这应该有效

 $("#myButton").prev('a').find('span.ui-btn-text').text("New Text") 

这是一个工作示例,显示如何更改两种类型按钮的文本 )。

如果你可以提供帮助,我不推荐使用这个按钮,因为没有id和我的方法,至少,依赖于对应的事实出现在元素之前。

由于jQuery mobile在input type =“button”元素周围生成HTML,并且您看到的文本实际上不是按钮的值,而是生成的span中的文本。 您可以遍历DOM查找实际跨度,也可以通过调用.button(“refresh”)告诉jQuery重新生成按钮HTML,如下所示:

 $("#MyButton").val("changed value"); $("#MyButton").button("refresh"); 

建议使用后者,因为它将与未来版本的jQuery mobile兼容,而如果jQuery团队选择更改为按钮生成的HTML结构,则遍历DOM可能会中断。

[弃用]

使用按钮输入的缺点是无法以传播到jquerymobile按钮的方式更改输入的属性。 然后只有ne方式:

$('#myButton').parent().find('.ui-btn-text').text('zzzzz');

如果input按钮不需要使用没有任何javascript的应用程序(或者你不希望它在没有javascript的情况下工作)那么你应该总是使用标签,因为它们可以是容器。

这对我有用:

 $('#idOfOriginalButton').prev('.ui-btn-inner').children('.ui-btn-text').html('new text'); 

解决方案来自: http : //forum.jquery.com/topic/changing-text-works-except-for-buttons

使用jquery.mobile-1.1.0,我遇到了一些稍微不同的东西,并且无法筛选响应以找到可行的答案。 我已经记录了我遇到的问题以及我在下面找到的解决方案。

片段1

  

有了这个,我就可以更改文本,但是方法会清除添加的跨度和类,从而压缩按钮。

按钮图像

HTML

  

片段2

  

这对按钮文本没有影响。

按钮图像

HTML

  

片段3

  

这会生成以下错误消息:

在初始化之前不能调用按钮上的方法; 试图调用方法’刷新’

这对我来说很困惑,因为只有在初始化页面后才会调用此函数。 进一步阅读,然后我注意到Priyank在stackoverflow.com/a/7279843/61821上提到的工作答案

小片4 – 工作

  

一个更好的jQuery选择器就像一个魅力。

为我更新了以下作品(类似于kovač的答案):

 $('#MyButton').html('changed value').button('refresh'); 

要么

 $("#MyButton").val("changed value").button("refresh");