0

コードは次のとおりです。

// Each ul that holds the collection of our entities
var lists = ['ul.emails', 'ul.phoneNumbers'];

// Setup the "add" link
var $addLink = $('<a href="#" class="margin-left btn btn-mini add"><i class="icon-plus"></i>label</a>');
var $newLinkLi = $('<li></li>').append($addLink);

$(document).ready(function() {

  // Add link to each list
  $.each(lists, function(index, list) { 
    $(list).append($newLinkLi);
  });

});

しかし、最後のものだけulがリンクを取得します。しかし、私がそうするなら

  $.each(lists, function(index, list) { 
    $(list).append('test');
  });

できます。何を与える?何かが参照渡しされていますか?

4

3 に答える 3

1

最初に要素を複製する必要があります。そうしないと、代わりに DOM 内で移動されます。

$(list).append($newLinkLi.clone());
于 2013-03-22T01:04:01.333 に答える
1

DOM に既に存在する要素を追加すると、その要素が移動するだけで、新しい要素は作成されません。

var lists   = ['ul.emails', 'ul.phoneNumbers'],
    addLink = '<a href="#" class="margin-left btn btn-mini add"><i class="icon-plus"></i>label</a>';

$(document).ready(function() {
    $.each(lists, function(index, list) { 
        var $newLinkLi = $('<li />').append(addLink);
        $(list).append($newLinkLi);
    });
});
于 2013-03-22T01:00:57.737 に答える
0

element要素文字列表現を使用する代わりに、1 つだけを処理しています。

// Each ul that holds the collection of our entities
var lists = ['ul.emails', 'ul.phoneNumbers'];

// Setup the "add" link
var $addLink = '<li><a href="#" class="margin-left btn btn-mini add"><i class="icon-plus"></i>label</a></li>';


$(document).ready(function() {

  // Add link to each list
  $.each(lists, function(index, list) { 
    $(list).append($addLink );
  });

});
于 2013-03-22T01:00:49.767 に答える