3

class="Short"を持つすべてのjqueryボタンのボタンラベルを表示するコードを書いています

私は次のコードを使用しています:-

$('.Short').button();
var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
   alert(all_short_btns[i].button( "option", "label" ));
}

HTMLは次のとおりです。

<button class="Short">Label1</button>
<button class="Short">Label2</button>
<button class="Short">Label3</button>
<button class="Short">Label4</button>
<button class="Short">Label5</button>
<button class="Short">Label6</button>

エラーが発生しています:

Uncaught TypeError:オブジェクト#にメソッド「ボタン」がありません

私の質問は、各ボタン要素のラベルを取得する方法ですか?

前もって感謝します。

4

4 に答える 4

2

間違ったメソッドを使用.eq(i)していました。を使用して特定のアイテムを取得してから、を呼び出してテキストを取得して.html()ください。

jsFiddle

var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
    alert(all_short_btns.eq(i).html());
}

または、を使用することもできますが、ネイティブループ$.each()よりもかなり低速です。for

var all_short_btns = $(".Short");
$.each(all_short_buttons, function (i, item) {
    alert(item.html());
});

アップデート

OPはjQueryUIを使用.html()していたため、<span>自動的に生成されてコンテンツをラップするが出力されます。[i]jQueryオブジェクトが必要なときに生のJavaScriptオブジェクトを取得するを使用しているため、エラーが発生しています。.eq()そのインデックスでjQueryオブジェクトを取得します。

jsFiddle

all_short_btns.eq(i).button("option", "label")
于 2013-03-24T10:29:08.163 に答える
2

これはあなたを助けるかもしれません:

$(".short").each(function(){
    alert($(this).text());
})


$(".short").each(function(){
    alert($(this).html());
})
于 2013-03-24T10:31:13.930 に答える
2

オブジェクトの開始タグと終了タグの間のテキストを設定または取得innerTextするプロパティを使用できます。

だからこれを試してみてください。

var all_short_btns = $(".Short");
for(i=0; i< all_short_btns.length; i++){
   alert(all_short_btns[i].innerText);
}

または、を使用eq(i)して取得することもできます。

for(i=0; i< all_short_btns.length; i++){
   alert(all_short_btns.eq(i).html());
}

JSフィドルの例

于 2013-03-24T10:32:17.240 に答える
0

みなさん、ありがとうございました。これも機能していることがわかりました。-

alert(all_short_btns.eq(i).button( "option", "label" ));
于 2013-03-24T10:34:28.980 に答える