jQuery 遍历 - contents() 方法
实例
找到段落中的所有文本节点,并用粗体标签包装它们。
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("");
定义和用法
contents() 方法获得匹配元素集合中每个元素的子节点,包括文本和注释节点。
语法
.contents()
详细说明
如果给定表示 DOM 元素集合的 jQuery 对象,.contents() 方法允许我们检索 DOM 树中的这些元素的直接子节点,并用匹配元素构造新的 jQuery 对象。.contents() 和 .children() 方法类似,不同的是前者在结果 jQuery 对象中包含了文本节点以及 HTML 元素。
.contents() 方法也可以用于获得 iframe 的内容文档,前提是该 iframe 与主页面在同一个域。
请思考下面这个带有一些文本节点的
,每个节点被两个折行元素 (
) 分隔:
) 分隔:
<div class="container"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <br /><br /> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <br /> <br /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div>
Tunaweza kutumia method ya .contents() kusafisha kufikia mawazo ya kati katika muundo wa mawazo:
$('.container').contents().filter(function() { return this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
Makini, kodi haitwa kumpata kijainiko cha <div class="container">, kisha kufikia mabaya ya matukio, kisha kumwambaa katika taji la mawazo. Hii inafanyika kwa kuteleza kipimo cha .nodeType ya kiini; mabaya ya matukio inatumiwa na kipimo 3. Matukio yana kufikia tena, kwa siku ya kufikia vitu vya <br />, ambavyo vinapoteza.