我正在编写一个 AJAX 网页(使用 IE 8),需要根据返回的数据在 jQuery 中动态构建一个列表。稍后,我会将列表转换为 jQuery Accordion 。
我也在尝试学习使用这些 jQuery 函数和链接的正确方法。我只是一个 jQuery NOOB,但了解 JavaScript。我找到了一篇关于 jQuery dom 函数的好文章:http://www.packtpub.com/article/jquery-1.4-dom-insertion-methods
我想使用 jQuery dom 函数和 jQuery 链接添加尽可能多的内容,而不是求助于使用文本的 HTML 源代码。我想主要使用 .wrap()
、.appendto()
、.attr()
、.text()
和 .parent()
。
我不认为 ".attr("class", "CC_CLASS").
是添加类的最佳方式。
给定 HTML 代码:
<div id="outputdiv"></div>
使用 jQuery dom 函数将其更改为以下内容:
<div id="outputdiv">
<ul id="JJ_ID">
<li> AAA_text </li>
<li id="BB_ID"> BBB_text </li>
<li class="CC_CLASS"> CCC_text </li>
<li id="DD_ID">DDD_text<br/>
<ol id="EE_ID">
<li> FFF_text </li>
<li id="GG_ID"> GGG_text </li>
<li class="HH_CLASS"> HHH_text </li>
</ol>
</li>
</ul>
</div>
我想出的一些代码(忽略文本中的空格)。
var aObj = $('<li></li>').text("AAA_text")
var bObj = $('<li></li>').attr("id", "BB_ID").text("BBB_text");
var cObj = $('<li></li>').attr("class", "CC_CLASS").text("CCC_text");
var dObj = $('<li></li>').attr("id", "DD_ID").text("DDD_text");
var fObj = $('<li></li>').text("FFF_text");
var gObj = $('<li></li>').attr("id", "GG_ID").text("GGG_text");
var hObj = $('<li></li>').attr("class", "HH_CLASS").text("HHH_text");
以某种方式将 (fObj + gObj + hObj) 添加到 eObj 中?
var eObj = `*something*`.attr("id", "EE_ID").wrap(`*something*`);
以某种方式将 (aObj + bObj + cObj+ dObj + eObj) 添加到 jObj 中?
var jObj = `*something*`.attr("id", "JJ_ID").wrap(`*something*`);
jObj.appendTo("#xmlOutputId")
最佳答案
.append
方法返回您调用它的同一个容器对象——利用它愉快地链接方法:
var inner_list = $('<ol/>', {id: "EE_ID" })
.append( $('<li/>', {text: "FFF_text" })
.append( $('<li/>', {id: "GG_ID", text: "GGG_text" })
.append( $('<li/>', {"class": "HH_CLASS", text: "HHH_text" });
var outer_list = $('<ul/>', {id: "JJ_ID" })
.append( $('<li/>', {text: "AAA_text" })
.append( $('<li/>', {id: "BB_ID", text: "BBB_text" })
.append( $('<li/>', {"class": "CC_CLASS", text: "CCC_text" })
.append(
$('<li/>', {id: "DD_ID", text: "DDD_text"})
.append(inner_list)
);
outer_list.appendTo('#xmlOutputId');
实际上,您可以在没有 var
的单个语句中完成所有操作,但在我看来,这会变得太丑陋了。
关于javascript - 如何使用 jQuery DOM 操作动态构建/添加列表元素(ul、ol、li)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720022/