2

次のコード (1) で次の出力 (2) が得られない理由

(1)

var $ul = $('<ul>');
var $li = $('<li>').text('text');
$ul.append($li);
$ul.append($li);
$ul.append($li);
$('<div>').append($ul);

(2)

<div>
   <ul>
     <li> text <li>
     <li> text <li>
     <li> text <li>
   </ul>
</div>
4

6 に答える 6

1

新しいものを作成するのではなく、同じliを何度も追加しています。

代わりに、html 文字列を作成して一度に追加することをお勧めします。

var strHTML = "<div><ul>";
strHTML += "<li>text</li>";
strHTML += "<li>text</li>";
strHTML += "<li>text</li>";
strHTML += "</ul></div>";
var elements = $(strHTML);

//OR in jQuery 1.8.0+    
//var elements = $.parseHTML(strHTML);

また、常に完全な html を に渡す必要があります。$()つまり、後で jQuery をアップグレードするときに、やらなければならないことがたくさんあります。$("<li />")$("<li>")

于 2012-08-29T14:19:19.660 に答える
1

クローンを使用します。

$li.clone().appendTo('ul');
于 2012-08-29T14:19:51.830 に答える
1

メソッドを使用できますclone()

var $ul = $('</ul>');
var $li = $('</li>', {text:'text'});
$ul.append($li.clone());
$ul.append($li.clone());
$ul.append($li.clone());
$('<div/>').append($ul)
于 2012-08-29T14:20:02.803 に答える
0
var $ul = $('<ul />');

for (i=0; i<3; i++) {
    $ul.append($('<li />', {text : 'text'}));
}

$('<div>').append($ul);
于 2012-08-29T14:29:49.777 に答える
0

試す

$("<div/>")
    .append(
       $("<ul/>")
          .append(
              $("<li/>")
                  .text(" text ")
          )
          .append(
              $("<li/>")
                  .text(" text ")
          )
          .append(
              $("<li/>")
                  .text(" text ")
          )
    );

$li同じものを数回追加すると、移動するだけです。追加ごとに新しいものを作成する必要があります。

于 2012-08-29T14:18:54.627 に答える
0

while ループを使用できます。

var i = 1;

while (i <= 3){
    $('ul').append('<li>Text</li>');
    i=i+1;
}
于 2012-08-29T14:22:01.887 に答える