2

ボタンをクリックしたときにボタンのテキストを更新しようとしています。同じクラスのボタンがいくつかありますが、ID はありません。なぜこれが機能しないのですか?

<input type="button" class="add-button" value="Default" />
<input type="button" class="add-button" value="Default" />
<input type="button" class="add-button" value="Default" />
<input type="button" class="add-button" value="Default" />

$(document).ready(function() {
    $('.add-button').click(function() {
        alert('clicked');
        $(this).html('Changed');
    });
});​

アラートはトリガーされますが、ボタンは変更されません。

4

10 に答える 10

9

に使用this.valueinputます。下記参照、

$(document).ready(function() {
    $('.add-button').click(function() {
        alert('clicked');
        this.value = 'Changed';
    });
});​

デモ: http://jsfiddle.net/qU5tR/10/

于 2012-10-17T20:02:16.923 に答える
4

これを試して

 $(this).val("changed");

html()交換するだけinnerHtmlです。ボタンの値は変更されません。

于 2012-10-17T20:02:47.613 に答える
2

html ではなく、その値を変更します。html の子はありません。

$(this).val('Changed');

また

this.value = "Changed";
于 2012-10-17T20:02:19.300 に答える
2

必要なのは

$(this).val('Changed');

それ以外の

$(this).html('Changed');
于 2012-10-17T20:03:01.160 に答える
2

これらは innerHTML を持たない入力ボタンです。ボタンのテキストを設定するには、ボタンの value 属性または value プロパティを設定する必要があります。

$(this).attr('value', 'Changed'); /* Change value attribute */
// or this.value = 'Changed';     /* Change value property */
于 2012-10-17T20:03:09.470 に答える
1

試す

this.value = 'changed' ;

これはより高速です$(this).val('changed');

フィドル

于 2012-10-17T20:04:27.847 に答える
1

正しく行う方法:

値を変更しようとしているので、次の.val()方法を使用します。

 $(this).val('Changed');

クロスブラウザ DOM プロパティまたはメソッドであるthis.value = 'Changed';ため、単純に を使用することもできます。value.prop()

$(this).prop('value', 'Changed');

うまくいかなかった理由:

.html()要素のコンテンツを変更します。要素はinputコンテンツを持たなくてもかまいません。終了タグはありません。ただし、要素で機能し<button>ますが、終了タグとコンテンツがあります。

于 2012-10-17T20:02:24.227 に答える
1

html の代わりに値を変更します。フォーム フィールドの jQuery コンテンツは、val によって変更できます。

$(document).ready(function() {
    $('.add-button').click(function() {
        alert('clicked');
        $(this).val('Changed'); // or this.value == 'Changed';
    });
});​
于 2012-10-17T20:02:32.147 に答える
0

ボタンにはhtmlが含まれていないためです。そのため、変更または設定できます。必要なものは次のとおりです。

$(this).val("Changed");
于 2012-10-17T20:04:41.827 に答える
0

.attr()メソッドを試してください:

$(document).ready(function() {
    $('.add-button').click(function() {
        alert('clicked');
        $(this).attr( 'value', 'NEW_TEXT');
    });
});​
于 2012-10-17T20:01:59.630 に答える