jQuery:获取下一个节点(也是文本节点)

时间:2010-07-08 20:52:56

标签: javascript jquery dom

我有一个jQuery对象,我将检索下一个兄弟节点,它可能是一个文本节点。 例如:

<div id="test">some text<br/>other text</div>

var test = $("#test");
var br = $("br", test);
alert(br.next().length); // No next ELEMENTS
alert(br.get(0).nextSibling.nodeValue); // "other text"
alert(br.get(0).nextSibling.nextSibling); // null

DOM级别2允许获取下一个NODE兄弟,但jQuery next()适用于元素(nodeType 1,我猜)。 我问这个是因为我已经在使用jQuery而且我更喜欢不直接触摸DOM节点(也因为jQuery本身可能提供DOM的抽象层,并且可能在不支持DOM 2级的情况下运行,但这是只是一个想法)。

如果jQuery没有提供这个,我应该像上面那样使用DOM,还是有更好的选择?

编辑:我忘记了一些事情:我不想只获得文本元素,而是任何类型的节点,就像nextSibling一样。 我正在使用.contents()迭代内容,但是当你只需要下一个节点并且DOM提供解决方案时,这非常烦人(而且很慢,还有很多其他坏事)。

EDIT2:看看jQuery源代码,它似乎依赖于nextSibling。

1 个答案:

答案 0 :(得分:7)

使用DOM。不要害怕它;它很简单,你似乎已经知道要使用什么。 jQuery构建在DOM之上,对于这种事情,使用DOM实际上可以在比jQuery版本更多的浏览器中工作。