2
<ul>
<li></li>  
<li></li>   
<li></li>   
<li></li>   
<li></li>    
</ul>

var obj = { one:1, two:2, three:3, four:4, five:5 };

 var list = $("div");
    jQuery.each(obj, function(i, val) {
  list.html( val);
});

この配列を反復処理し、各値をリストアイテムに追加して、次のように表示しようとしています。

<ul>
<li>1</li>  
<li>2</li>   
<li>3</li>   
<li>4</li>   
<li>5</li>   
</ul>

私の問題は、コードが配列の最後の項目のみを追加することです:5。

私が間違っていることがわからない。

4

3 に答える 3

2

li要素の値を使用して、配置する必要のある要素をターゲットにします。

$.each( obj, function( i, v ) {
  $("ul li").eq(v-1).html(v);
});

デモ: http: //jsfiddle.net/3RAQC/

結果は次のようになります。

<ul>
    <li>1</li>  
    <li>2</li>   
    <li>3</li>   
    <li>4</li>   
    <li>5</li>    
</ul>
于 2012-05-30T06:13:55.600 に答える
1

list.html(val)ではなくlist.append(val)を使用してください

.append()はhtmlコンテンツに追加しますが、.htmlは常にhtml値全体をパラメーターに置き換えます。

于 2012-05-30T06:15:48.207 に答える
1

あなたはどちらも持って<div>いません<ul>。配列ではなくオブジェクト(連想配列と呼ばれることもあります)があります。そして、1つの要素を選択し、最後の値のみが表示されるように、各反復でそのコンテンツを(再)設定します。より良い:

var ul = $('ul').empty();
$.each(obj, function(prop, val) {
    ul.append("<li>"+val+"</li>");
    // or better:
    $("<li>").text(val).appendTo(ul); // ?
});
于 2012-05-30T06:17:13.633 に答える