Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取标记内的所有节点_Javascript_Jquery_Dom_Nodes - Fatal编程技术网

Javascript 获取标记内的所有节点

Javascript 获取标记内的所有节点,javascript,jquery,dom,nodes,Javascript,Jquery,Dom,Nodes,我有这样一个代码: <div id="container"> Lorem ipsum dolor sit amet <p>This is a paragraph</p> <br /> <span>This is a span</span> Lorem ipsum dolor sit amet </div> 我在jquery中尝试了“all selector”,但它只获取标记,而不获取文本。使用jquery,您可

我有这样一个代码:

<div id="container">
Lorem ipsum dolor sit amet
<p>This is a paragraph</p>
<br />
<span>This is a span</span>
Lorem ipsum dolor sit amet
</div>

我在jquery中尝试了“all selector”,但它只获取标记,而不获取文本。

使用jquery,您可以使用.children()()方法将所有子元素获取到容器div,然后从每个子元素获取值并打印该值。

要获取元素中包含的文本,请使用
.text()
函数。例如
$('#container').text()
或在本例中

$("#container").find('*').add('#container').map(function() { return $(this).text }).get()

您可以使用下面的代码来执行此操作。基本上,
childNodes
获取作为元素子元素的所有节点的列表。之后,我们必须遍历整个获取的节点列表,然后根据需要打印输出

children[i].textContent.trim()上的
if
条件“
用于排除空节点(包括

标记)

window.onload=function(){
var children=document.getElementById(“容器”).childNodes;
对于(变量i=0;i”;
}
}

Lorem ipsum dolor sit amet
这是一段


这是一个跨度 Lorem ipsum dolor sit amet
输出

这将返回所有文本和子元素,但不会像预期的那样作为数组返回。可能你可以用它来验证和做任何你想做的事情。

你可以使用JQuery函数来迭代所有的子项
$(“#容器”).children().each(function(){//do sth})
,但是它不会返回直接包含在div中的文本。那么我如何将文本(尚未包装)包装在div周围?你还想要什么?标签的类型
divp
etc?我想访问标签中不包含的文本
Node: Lorem ipsum dolor sit amet
Node: This is a paragraph
Node: This is a span
Node: Lorem ipsum dolor sit amet
$("#container").find('*').add('#container').map(function() { return $(this).text }).get()
 jQuery("#container").html()