0
<ul id ="questions">
    <li class="question"></li>
    <li class="question"></li>
    <li class="question"></li>
</ul>

各リスト要素を反復するにはどうすればよいですか?

これまでのところ、私は持っています:

$("#questions li").each(function() { });

しかし、運が悪い、何かアイデアはありますか?

最初の li 以外はすべてその場で追加されていることに言及しなければなりませんが、これがループがそれらを拾わない理由ですか?

4

4 に答える 4

1

LIVE DEMO

を使用します.ready function。そうすることで、DOMの変更が読み取られると行われます。

$(function(){
   $("#questions li").each(function() {
          // DO SOMETHING
   });
});

http://api.jquery.com/ready/

または、fireBugまたはdevToolを使用して、その他の考えられるエラーを取得します。

于 2013-03-06T22:48:19.290 に答える
0

各リストアイテムを反復処理するときに、何をしようとしていますか?この.each関数を使用するとうまくいくはずです。関数の呼び出しが早すぎることが原因である可能性がありますが、問題が発生している場合は、ready function(@ roXonが述べたように)それを修正します。それ以外の場合、問題が発生している場合。idとの間にあるスペースが原因である可能性があり=ます<ul>

各要素を反復処理するjQueryの例を次に示します。

$('#questions li').each(function() {
    var i = $(this).index() + 1;
    $(this).text("List item " + i);
});

気軽に試してみてください:http://codepen.io/sdthornton/pen/gkayG

于 2013-03-06T22:59:23.253 に答える
0

各リスト項目を繰り返し処理しているように見えます。

dom要素を次のように変更した場合:

<ul id ="questions">
    <li class="question">one</li>
    <li class="question">two</li>
    <li class="question">three</li> 
</ul>

次に、ドキュメントが読み込まれるときに次のjQueryコードを使用します。

$(function(){
   $("#questions li").each(function() {
          alert($(this).html()); //Or whatever you want to do with that item
   });
});

以下を出力する必要があります。

  • 1
  • 2

注:JavaScriptとjQueryはhttp://jsfiddle.net/でテストできます。

于 2013-03-06T22:52:28.937 に答える
0

関数パラメーターを使用して、各リスト項目のインデックスと値を取得します。

$("#questions li").each(function(index, value) {
    console.log(index + '' + $(value).html());
});
于 2013-03-06T22:51:57.707 に答える