jQuery 遍历 - contents() 方法

实例

找到落中的所有文本节点,并用粗体标签包装它们。

$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("");

ਆਪਣੇ ਆਪ ਕੋਸ਼ਿਸ਼ ਕਰੋ

定义和用法

contents() 方法获得匹配元素集合中每个元素的子节点,包括文本和注释节点。

语法

.contents()

详细说明

如果给定表示 DOM 元素集合的 jQuery 对象,.contents() 方法允许我们检索 DOM 树中的这些元素的直接子节点,并用匹配元素构造新的 jQuery 对象。.contents() 和 .children() ਮੈਥਡ ਵਰਗਾ ਹੈ, ਫਿਰ ਵੀ ਪਹਿਲਾਂ ਦਾ ਅੰਤਿਮ ਜੇਕੁੇਅਰੀ ਆਪਣੇ ਨਾਲ ਟੈਕਸਟ ਨੋਡ ਅਤੇ ਐੱਚਟੀਐੱਮਐੱਲ ਤੱਤ ਰੱਖਦਾ ਹੈ。

.contents() ਮੈਥਡ ਨੂੰ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ iframe ਮੁੱਖ ਪੰਨੇ ਦੇ ਨਾਲ ਇੱਕੋ ਖੇਤਰ ਵਿੱਚ ਹੈ。

ਸੋਚੋ ਹੇਠ ਲਿਖੇ ਟੈਕਸਟ ਨੋਡ ਵਾਲੇ <div> ਨੂੰ, ਹਰੇਕ ਨੋਡ ਨੂੰ ਦੋ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਤੀਰੂਪ ਨੋਡਾਂ (<br />) ਵੱਲੋਂ ਵੰਡਿਆ ਗਿਆ ਹੈ:

<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>

ਅਸੀਂ .contents() ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ਤਾਕਿ ਟੈਕਸਟ ਬਲਾਕ ਨੂੰ ਸ਼ਾਨਦਾਰ ਪੈਰੈਂਗਸ ਵਿੱਚ ਬਦਲ ਸਕੀਏ:

$('.container').contents().filter(function() {
  return this.nodeType == 3;
)
  .wrap('<p></p>')
.end()
.filter('br')
  .remove();

ਆਪਣੇ ਆਪ ਕੋਸ਼ਿਸ਼ ਕਰੋ

ਇਹ ਕੋਡ ਪਹਿਲਾਂ <div class="container"> ਦਾ ਸਮੱਗਰੀ ਜਾਣਦਾ ਹੈ, ਫਿਰ ਉਸ ਦੇ ਟੈਕਸਟ ਨੋਡ ਫਿਲਟਰ ਕਰਦਾ ਹੈ, ਅਤੇ ਟੈਕਸਟ ਨੋਡ ਨੂੰ ਪੈਰੈਂਗਸ ਟੈਗ ਵਿੱਚ ਪੈਕ ਕਰਦਾ ਹੈ। ਇਹ ਪ੍ਰੀਖਿਆ ਤੱਤ ਦੀ .nodeType ਵਿਸ਼ੇਸ਼ਤਾ ਰਾਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਨੋਡ ਕਿਸਮ ਨੂੰ ਸੂਚਿਤ ਕਰਦੀ ਹੈ; ਟੈਕਸਟ ਨੋਡ ਨੂੰ 3 ਕੋਡ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਸਮੱਗਰੀ ਫਿਰ ਫਿਲਟਰ ਕੀਤੀ ਜਾਵੇਗੀ, ਇਸ ਵਾਰ <br /> ਤੱਤ ਲਈ, ਇਹ ਤੱਤ ਹਟਾਏ ਜਾਣਗੇ。