【问题标题】:How to change the text of a button in jQuery?如何在 jQuery 中更改按钮的文本?
【发布时间】:2011-07-31 15:19:09
【问题描述】:

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

$("#btnAddProfile").attr('value', 'Save');

【问题讨论】:

  • 实际上您的示例应该可以更改按钮的值。我试过了,它奏效了。可能按钮的 id 不同或错字。
  • 仍然无法正常工作...会不会是 JQuery UI 样式造成的?
  • 谢尔盖的回答是最好的。它可以在 jquery 按钮上正常工作,而不会删除其样式、填充和边距。

标签: jquery jquery-ui


【解决方案1】:

在 C# 中更改按钮礼仪的名称。

<button type="submit" name="add" id="btnUpdate" class="btn btn-primary" runat="server" onserverclick="btnUpdate_Click">
Add

btnUpdate.**InnerText** = "Update";

【讨论】:

    【解决方案2】:

    $(document).ready(function(){
        $(":button").click(function(){
            $("p").toggle();
    
        if (this.value=="Add") this.value = "Save";
        else this.value = "Add";
    
      });
    });
    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    </head>
    <body>
    
    <input type='button' value='Add' id='btnAddProfile'>
    
    <p>This is a paragraph with little content.</p>
    <p>This is another small paragraph.</p>
    
    </body>
    </html>

    【讨论】:

      【解决方案3】:

      你可以这样使用:

      $('#your-button').text('New Value');
      

      您还可以像这样添加额外的属性:

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

      【讨论】:

      • 输入按钮或提交按钮不起作用,使用 val()
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:
            $( "#btnAddProfile" ).on( "click",function(event){
            $( event.target ).html( "Save" );
        });
        

        【讨论】:

          【解决方案6】:

          你需要做.button("refresh")

          HTML

          <button id='btnviewdetails' type='button'>SET</button>
          

          JS

          $('#btnviewdetails').text('Save').button("refresh");
          

          【讨论】:

          • 由于某种原因,它只在我使用您的代码刷新按钮后才对我有用,但我也注意到按钮上的图标(JQuery Mobile CSS 的一部分)在刷新后丢失了(虽然你的解决方案是我得到的最接近的)。
          【解决方案7】:

          这对我有用 html:

          <button type="button" class="btn btn-primary" id="btnSaveSchedule">abc</button>
          

          js

          $("#btnSaveSchedule").text("new value");
          

          【讨论】:

            【解决方案8】:
            $("#btnAddProfile").html('Save').button('refresh');
            

            【讨论】:

              【解决方案9】:

              这应该可以解决问题:

              $("#btnAddProfile").prop('value', 'Save');       
              $("#btnAddProfile").button('refresh');
              

              【讨论】:

                【解决方案10】:

                取决于您使用的按钮类型

                <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');
                

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

                编辑:当然,假设您已将其包装在 .click() 调用中,这些将起作用

                EDIT 2:较新的 jQuery 版本(从 > 1.6 开始)使用 .prop 而不是 .attr

                EDIT 3 : 如果你使用 jQuery UI,你需要使用 DaveUK 的方法 (below) 调整文本属性

                【讨论】:

                • 使用 .html('Save') 让它工作,我没有注意到我在按钮上设置了 runat=server,这就是导致问题的原因。
                • 如果可以的话,我会投反对票,因为它在某些情况下会破坏风格。 如果您对此有问题,请使用 DaveUK 的答案。 PS:我想这也是 Sevenearths 注意到的
                • 更好:使用下面 Sergey 的答案来正确使用 jQuery 和面向未来: $( ".selector" ).button( "option", "label", "new text" ) ;
                • 对于button元素,也可以使用$("#element").val("New Label");
                【解决方案11】:

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

                $( ".selector" ).button( "option", "label", "new text" );
                

                【讨论】:

                • 这比其他方法对我更有效,其他方法会影响按钮的样式(特别是按钮的大小)。我在 jQuery UI 对话框 FWIW 上使用了一个按钮。
                • 这是使用 jQuery 创建的按钮的正确答案,例如对话框上的按钮。所有其他人都会破坏一些 jQuery 样式。这也可以在不依赖 jQuery 生成的 HTML 结构的情况下做到这一点,这更具前瞻性。
                • 这是这个问题的正确答案(好像问题是关于Jquery UI按钮,见cmets),应该推广一下。
                【解决方案12】:

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

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

                <button id="thebutton">
                  <span class="ui-button-text">My Text</span>
                </button>
                

                如果您删除跨度并将其替换为文本(如在其他示例中所示) - 您将失去跨度和相关格式。

                所以您实际上需要更改 SPAN 标记中的文本,而不是 BUTTON!

                $("#thebutton span").text("My NEW Text");
                

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

                $("span", this).text("My NEW Text");
                

                【讨论】:

                • 你不应该期望这个 DOM 结构永远不会改变。更好的是使用 jQuery-UI 为您提供的方法来更改标签(请参阅 Sergey 的回答)。
                【解决方案13】:

                你可以使用

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

                虽然

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

                也可以,但它具有误导性(它给人的印象是你可以写类似

                $("#btnAddProfile").html('Save <b>now</b>');
                

                当然不能

                【讨论】:

                  【解决方案14】:
                  $("#btnviewdetails").click(function(){
                      if($(this).val()!="hide details"){
                          $("#detailedoutput").show();
                          $(this).val('hide details');
                      }else{
                          $("#detailedoutput").hide();
                          $(this).val('view more details');
                      }
                  
                  });
                  

                  【讨论】:

                  • 包括一些关于你的答案的细节。
                  • 请在您的回答中包含详细信息。我不知道你想在这里做什么。
                  【解决方案15】:

                  你是否给你的按钮一个类而不是一个id?试试下面的代码

                  $(".btnSave").attr('value', 'Save');
                  

                  【讨论】:

                    【解决方案16】:

                    如果您按下按钮,这似乎可以工作:

                    <button id="button">First caption</button>
                    
                    $('#button').button();//make it nice
                    var text="new caption";
                    $('#button').children().first().html(text);
                    

                    【讨论】:

                      【解决方案17】:

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

                      &lt;input type='button' value='XYZ' id='btnAddProfile'&gt;

                      使用

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

                      &lt;button id='btnAddProfile'&gt;XYZ&lt;/button&gt;

                      使用这个

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

                      【讨论】:

                      • 另外,对于由 jquery 创建的按钮,例如使用$('#thing').append($("&lt;button /&gt;")....),需要使用.html来设置文字。
                      【解决方案18】:

                      完全正确,这对我有用;

                          $('#btnAddProfile').bind('click',function(){
                          $(this).attr('value','save');
                      })
                      

                      您确定 Jquery 可用并且您的代码在正确的位置吗?

                      【讨论】:

                        【解决方案19】:
                        document.getElementById('btnAddProfile').value='Save';
                        

                        【讨论】:

                        • 无用,OP 要求使用 jQuery
                        【解决方案20】:

                        【讨论】:

                          【解决方案21】:
                          $("#btnAddProfile").click(function(){
                              $("#btnAddProfile").attr('value', 'Save');
                           });
                          

                          【讨论】:

                          • 从问题中重复非工作代码不是答案。
                          猜你喜欢
                          • 2013-04-15
                          • 2012-05-24
                          • 1970-01-01
                          • 1970-01-01
                          • 2013-02-27
                          • 1970-01-01
                          • 2011-04-29
                          • 1970-01-01
                          相关资源
                          最近更新 更多