【发布时间】:2012-05-01 02:27:09
【问题描述】:
需要从 DOM 元素中获取所有直接节点,但实际上并不知道它有多少以及它们是什么类型。
.contents()?
好的,让我们看看..
$('<div />').html('<p>p</p>').contents() ->
[<p>p</p>]
好的。
$('<div />').html('textNode').contents() -> []
WTF?
$('<div />').html('textNode').append('another').contents() ->
["textNode", "another"]
好的,那么单个文本节点呢?
【问题讨论】:
-
如果您使用
$('<div />').html('textNode').appendTo('body'),那么.contents()将拥有textNode。只要结构不是 dom 的一部分,似乎 jQuery 正在处理这种不同的情况。 -
据我所知,我的问题不是基于 jQuery,而是基于 JavaScript。
q = $('<div></div>').html('dsfdsf')[0]q.childNodes->[],但console.dir(q)返回具有一个 childNode 的 HTMLDivElement。有什么想法吗? -
在将其附加到 DOM 之前,我使用当前的 HTML 结构,所以
appendTo('body')不是解决方案 -
我的评论并不是作为解决方案,而是作为参考/注释。顺便说一句,你肯定在这里处理 jQuery 的事情。
-
>肯定是在处理一个 jQuery
div = document.createElement('div'); div.appendChild(document.createTextNode('dsf')); div.childNodes;->[]
标签: javascript jquery textnode