jQueryでボタンのテキストを変更するにはどうすればよいですか?


548

jQueryでボタンのテキスト値をどのように変更しますか?現在、私のボタンにはテキスト値として「追加」があり、クリックすると「保存」に変更します。以下でこの方法を試しましたが、これまでのところ成功していません:

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

3
実際の例では、ボタンの値を変更する必要があります。試してみましたが、うまくいきました。おそらく、ボタンのIDが異なるか、タイプミスです。
mjspier

それでも動作しません... JQuery UIスタイルが原因ですか?
user517406 2011

4
セルゲイの答えは最高でした。スタイル、パディング、マージンを削除せずにjqueryボタンで適切に動作しています。
AaA 2013年

これを使用$( "#btnAddProfile")。prop( 'value'、 'Save');
Php開発者

回答:


899

使用しているボタンのタイプによって異なります

<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()もちろん、通話にラップした場合に機能します

編集2:より新しいjQueryバージョン(> 1.6以降)では.propなく.attr

編集3:jQuery UIを使用している場合は、DaveUKのテキストプロパティを調整する方法(以下)を使用する必要があります。


7
.html( 'Save')を使用して機能しました。ボタンにrunat = serverを設定していることに気付きませんでした。これが問題の原因でした。
user517406 2011

これを機能させてjquery uiボタンをシュリンクラップさせない方法はありますか?
セブンアース

2
心配しないでください。からbuttoninput変更し、テキストをいじるのではなく、アイコンの丸を変更しました。(何かが意図されたものではなかったと思います)
セブンアース

8
場合によってはスタイルがめちゃくちゃになるので、できればこれに反対票を投じます。これに問題がある場合は、DaveUKの回答を使用してください。PS:セブンアースが気付いたこともそうだと思います
user562529 2012

3
さらに良い:jQueryの適切な使用と将来の保証のために、以下のSergeyからの回答を使用します。$( ".selector").button( "option"、 "label"、 "new text");
cincodenada 2012

148

jQueryの.Button()で作成されたボタン........

他の回答はボタンのスタイルを乱すテキストを変更しますが、jQueryボタンがレンダリングされると、ボタンのテキストがスパン内にネストされることがわかります。

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

(他の例のように)スパンを削除してそれをテキストに置き換えると、スパンとそれに関連する書式が失われます。

したがって、実際にはボタンではなくSPANタグ内のテキストを変更する必要があります。

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

または(私のようにクリックイベントで行われている場合)

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

4
このDOM構造が決して変更されないことを期待するべきではありません。はるかに良いのは、jQuery-UIでラベルを変更できるメソッドを使用することです(Sergeyの回答を参照)。
Mike DeSimone 2013

80

JQueryを使用して「ボタン化」された場合にボタンテキストを変更する正しい方法は、.button()メソッドを使用することです。

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

3
これは、ボタンのスタイリング(特にボタンのサイズ)に踏み込んだ他のアプローチよりもうまく機能しました。私はjQuery UIダイアログ、FWIWのボタンを使用していました。
Dave Crumbacher、2012

8
これは、ダイアログのボタンなど、jQueryで作成されたボタンの正解です。他のすべてはjQueryスタイルの一部を破壊します。これはまた、jQueryが生成するHTML構造に依存せずにそれを行います。
cincodenada 2012

これはこの質問への正しい答えです(質問はJquery UIボタンに関するものです。コメントを参照してください)。宣伝する必要があります。
peveuve 2015

38

ボタンのテキストを変更するには、jQueryの次の行を実行します。

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

使用する

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

の間

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

これを使って

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


また、jqueryによってeg $('#thing').append($("<button />")....)などを使用して作成されたボタンの場合、.htmlを使用してテキストを設定する必要があります。
Benubird 2013


22

あなたがする必要があります .button("refresh")

HTML

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

JS

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

何らかの理由で、コードを使用してボタンを更新した後にのみ機能しますが、ボタン(JQuery Mobile CSSの一部)のアイコンが更新後に失われることにも気付きました(ただし、ソリューションは最も近いものでしたが)私が得た)。
Ciaran Gallagher 2013

12

あなたがあなたのボタンにボタンを押した場合、これはうまくいくようです:

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

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


10

次のようなものを使用できます。

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

次のような追加のプロパティを追加することもできます。

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

入力ボタンまたは送信ボタンが機能しない場合は、val()を使用してください
ActiveX

8

使用できます

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

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

同様に機能しますが、それは誤解を招きやすいです(それはあなたが次のようなものを書くことができるという印象を与えます

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

もちろんできません




4

それは私にとってはhtmlです:

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

js

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

4

$(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>


2

ボタンにIDではなくクラスを指定しましたか?次のコードを試してください

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

1
$("#btnviewdetails").click(function(){
    if($(this).val()!="hide details"){
        $("#detailedoutput").show();
        $(this).val('hide details');
    }else{
        $("#detailedoutput").hide();
        $(this).val('view more details');
    }

});

回答の詳細を含めます。
Starx

詳細を回答に含めてください。ここで何をしようとしているのか、私にはわかりません。
Anurag 2012

1

これでうまくいくはずです:

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


0

それは正確です。これは私にとってはうまくいきます。

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

Jqueryが利用可能であり、コードが正しい場所にあることを確認しますか?



0

C#でのボタンエチケットの名前の変更。

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

btnUpdate.**InnerText** = "Update";
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.