如何在jQuery中更改按钮的文本?

use*_*406 518 jquery jquery-ui

你如何在jQuery中更改按钮的文本值?目前,我的按钮有"添加"作为其文本值,点击后我希望它更改为"保存".我在下面尝试过这种方法,但到目前为止还没有成功:

$("#btnAddProfile").attr('value', 'Save');
Run Code Online (Sandbox Code Playgroud)

Joh*_*hnP 855

取决于您使用的按钮类型

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").attr('value', 'Save'); //versions older than 1.6

<input type='button' value='Add' id='btnAddProfile'>
$("#btnAddProfile").prop('value', 'Save'); //versions newer than 1.6

<!-- Different button types-->

<button id='btnAddProfile' type='button'>Add</button>
$("#btnAddProfile").html('Save');
Run Code Online (Sandbox Code Playgroud)

您的按钮也可以是一个链接.您需要发布一些HTML以获得更具体的答案.

编辑:.click()当然,假设你把它包裹在一个电话中,这些都可行

编辑2:较新的jQuery版本(来自> 1.6)使用.prop而不是.attr

编辑3:如果你正在使用jQuery UI,你需要使用DaveUK的方法(下面)调整文本属性

  • 如果可以的话,我会贬低这个,因为在某些情况下它会弄乱风格.*如果你遇到麻烦,请使用DaveUK的答案*.PS:我猜这也是Sevenearths注意到的 (8认同)
  • 使用.html('保存')工作了,我没注意到我在我的按钮上设置了runat = server,这就是导致问题的原因. (7认同)
  • 更好的是:使用下面谢尔盖的答案来正确使用jQuery和面向未来:$(".selector").button("option","label","new text"); (3认同)
  • 不用担心 我从“按钮”更改为“输入”,并将图标变成圆形而不是弄乱文本。(我想这不是故意的) (2认同)

Dav*_*eUK 146

对于在jQuery中使用.Button()创建的按钮........

虽然其他答案将改变文本,但它们会弄乱按钮的样式,但事实证明,当呈现jQuery按钮时,按钮的文本嵌套在跨度内,例如

<button id="thebutton">
  <span class="ui-button-text">My Text</span>
</button>
Run Code Online (Sandbox Code Playgroud)

如果删除跨度并用文本替换它(如在其他示例中那样) - 您将松开跨度和相关格式.

所以你实际上需要更改SPAN标签内的文本而不是BUTTON!

$("#thebutton span").text("My NEW Text");
Run Code Online (Sandbox Code Playgroud)

或者(如果像我一样,它是在点击事件上完成的)

$("span", this).text("My NEW Text");
Run Code Online (Sandbox Code Playgroud)

  • 你不应该期望这个DOM结构永远不会改变.更好的方法是使用jQuery-UI方法让你改变标签(见谢尔盖的回答). (4认同)

Ser*_*gey 80

如果使用JQuery"按钮化"按钮文本,更改按钮文本的正确方法是使用.button()方法:

$( ".selector" ).button( "option", "label", "new text" );
Run Code Online (Sandbox Code Playgroud)

  • 这是使用jQuery创建的按钮的正确答案,例如对话框中的按钮.所有其他人将破坏一些jQuery样式.这也可以在不依赖于jQuery生成的HTML结构的情况下实现,这更加面向未来. (8认同)
  • 这对我来说比其他方法更有效,这些方法踩在按钮的样式上(特别是按钮的大小).我在jQuery UI对话框FWIW上使用了一个按钮. (3认同)

San*_*non 36

要更改按钮的文本,只需执行以下jQuery行即可

<input type='button' value='XYZ' id='btnAddProfile'>

使用

$("#btnAddProfile").val('Save');
Run Code Online (Sandbox Code Playgroud)

而对于

<button id='btnAddProfile'>XYZ</button>

用这个

$("#btnAddProfile").html('Save');


小智 21

你需要这样做 .button("refresh")

HTML:

<button id='btnviewdetails' type='button'>SET</button>
Run Code Online (Sandbox Code Playgroud)

JS:

$('#btnviewdetails').text('Save').button("refresh");
Run Code Online (Sandbox Code Playgroud)


Glu*_*uip 12

如果你有按钮按钮,这似乎工作:

<button id="button">First caption</button>

$('#button').button();//make it nice
var text="new caption";
$('#button').children().first().html(text);
Run Code Online (Sandbox Code Playgroud)


i_e*_*uel 10

$("#btnAddProfile").text("Save");


小智 10

你可以使用这样的东西:

$('#your-button').text('New Value');
Run Code Online (Sandbox Code Playgroud)

您还可以添加以下额外属性:

$(this).text('New Value').attr('disabled', true).addClass('bt-hud').unbind('click');
Run Code Online (Sandbox Code Playgroud)

  • 输入按钮或提交按钮不起作用,请使用 val() (2认同)

got*_*itz 8

您可以使用

$("#btnAddProfile").text('Save');
Run Code Online (Sandbox Code Playgroud)

虽然

$("#btnAddProfile").html('Save');
Run Code Online (Sandbox Code Playgroud)

它会起作用,但它会产生误导性(它给人的印象是你可以写出像

$("#btnAddProfile").html('Save <b>now</b>');
Run Code Online (Sandbox Code Playgroud)

但当然你不能


cur*_*isk 6

document.getElementById('btnAddProfile').value='Save';
Run Code Online (Sandbox Code Playgroud)

  • 那不是jQuery。 (2认同)

sau*_*ger 5

$("#btnAddProfile").click(function(){
    $("#btnAddProfile").attr('value', 'Save');
 });
Run Code Online (Sandbox Code Playgroud)

  • 从问题中重复非工作代码不是答案. (10认同)

Gre*_*olf 5

它对我有用 html:

<button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>
Run Code Online (Sandbox Code Playgroud)

js

$("#btnSaveSchedule").text("new value");
Run Code Online (Sandbox Code Playgroud)