1

このオブジェクトからアイテムを取得したいと思います:

var things = {
    "thing1" : "I'm one",
    "thing2" : "I'm two",
    "thing3" : "I'm three",
}

そして、それらをこのマークアップに追加します。

<div class="allthings">
<div class="thing1">other content first. </div>
<div class="thing2">other content first. </div>
<div class="thing3">other content first. </div>   
</div>

その結果:

<div class="thing1">other content first. <p class="added">I'm one</p></div>
... etc.

.each()ループは得意ではありません。jQueryに相当するものは何ですか:

「オブジェクト内の各アイテムについて、アイテムのキーに一致するクラスを持つdivを見つけ、クラスが「追加」された段落としてアイテムの値を追加します。」

4

4 に答える 4

2

私がすること:

for (var i in things) $("."+i).append("<p class='added'>"+things[i]+"</p>");    

Jqueryのみのソリューション:

$.each(things,function(i,e) {$("."+i).append("<p class='added'>"+e+"</p>");});
于 2012-06-18T20:27:03.817 に答える
1
$.each(things, function(k, v){
    var sel = '.' + k,
        $el = $(sel);
    $el.html($el.html() + '<p class="added">' + v + '</p>');
});

デモを見る

于 2012-06-18T20:24:02.090 に答える
1

これは機能します:

$.each(things, function(key, value) {
    $("<p />").addClass("added").text(value).appendTo("." + key);
});

デモ:http: //jsfiddle.net/exEbw/


アップデート。IDの場合、セレクター#でドットの代わりにハッシュ文字を使用します。.appendTo

$("<p />").addClass("added").text(value).appendTo("#" + key);

デモ:http: //jsfiddle.net/exEbw/1/

于 2012-06-18T20:24:55.827 に答える
1

これを試して。

jQuery.each(things, function(i,j) {
    $("." + i).append('<p class="added">'+j+'</p>');
});
于 2012-06-18T20:29:58.423 に答える