Javascript 如何使用jquery生成html列表
为什么下面的代码(1)没有给出下面的输出(2) (一)Javascript 如何使用jquery生成html列表,javascript,jquery,Javascript,Jquery,为什么下面的代码(1)没有给出下面的输出(2) (一) var$ul=$(“”); var$li=$(“”).text('text'); $ul.附加($li); $ul.附加($li); $ul.附加($li); $('')。附加($ul); (二) 文本 文本 文本 试试看 $(“”) .附加( 美元(“”) .附加( 美元(“”) .文本(“文本”) ) .附加( 美元(“”) .文本(“文本”) ) .附加( 美元(“”) .文本(“文本”) ) ); 当您多次附加相同的$li
var$ul=$(“”);
var$li=$(“- ”).text('text');
$ul.附加($li);
$ul.附加($li);
$ul.附加($li);
$('')。附加($ul);
(二)
- 文本
-
- 文本
-
- 文本
-
试试看
$(“”)
.附加(
美元(“
”)
.附加(
美元(“”)
.文本(“文本”)
)
.附加(
美元(“”)
.文本(“文本”)
)
.附加(
美元(“”)
.文本(“文本”)
)
);
当您多次附加相同的
$li
时,您只是在移动它。您需要为每个追加创建一个新的追加。您正在一次又一次地追加相同的li,而不是创建一个新的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);
var strHTML=“”;
strHTML+=“- 文本”
”;
strHTML+=“- 文本”
”;
strHTML+=“- 文本”
”;
strHTML+=“
”;
var元素=$(strHTML);
//或者在jQuery 1.8.0+中
//var元素=$.parseHTML(strHTML);
另外,您应该始终将完整的html传递到$()
,意思是$(“”)而不是$(“”)
,否则以后升级jQuery时您将有大量工作要做。使用克隆。
$li.clone().appendTo('ul');
您可以使用clone()
方法
var $ul = $('</ul>');
var $li = $('</li>', {text:'text'});
$ul.append($li.clone());
$ul.append($li.clone());
$ul.append($li.clone());
$('<div/>').append($ul)
var$ul=$(“”);
var$li=$(“”,{text:'text});
$ul.append($li.clone());
$ul.append($li.clone());
$ul.append($li.clone());
$('')。追加($ul)
您可以使用while循环:
var i = 1;
while (i <= 3){
$('ul').append('<li>Text</li>');
i=i+1;
}
var i=1;
而(ivar$ul=$(“
”);
对于(i=0;i您正在一次又一次地添加同一个li,而不是创建一个新的li。为什么会这样?即使没有添加相同的列表项,您也不会对正在生成的HTML执行任何操作。此外,在提问时,最好描述您看到的行为,以使问题更容易回答。有很多不同的t答案张贴在这里。其中一些建议了创建新元素的不同方法。下面是一个关于做什么以及为什么要做的长期讨论:
$li.clone().appendTo('ul');
var $ul = $('</ul>');
var $li = $('</li>', {text:'text'});
$ul.append($li.clone());
$ul.append($li.clone());
$ul.append($li.clone());
$('<div/>').append($ul)
var i = 1;
while (i <= 3){
$('ul').append('<li>Text</li>');
i=i+1;
}
var $ul = $('<ul />');
for (i=0; i<3; i++) {
$ul.append($('<li />', {text : 'text'}));
}
$('<div>').append($ul);