Javascript 使用jQuery确定元素是否为文本节点
给定jQuery元素,如何确定右侧的同级节点是否是文本节点而不是另一个元素?在PHP中,您可以将Javascript 使用jQuery确定元素是否为文本节点,javascript,jquery,Javascript,Jquery,给定jQuery元素,如何确定右侧的同级节点是否是文本节点而不是另一个元素?在PHP中,您可以将节点类型与#文本进行比较-在这种情况下,等价物是什么 window.jQuery('body').find('a').each(function (i) { if(window.jQuery(this).next() == '?'){ } }); 我正在努力找出我能在条件部分做些什么 更新 出于某种原因,我所有的测试都会返回1而不是3来表示文本节点 评论如下: 检查此选项并
节点类型
与#文本
进行比较-在这种情况下,等价物是什么
window.jQuery('body').find('a').each(function (i) {
if(window.jQuery(this).next() == '?'){
}
});
我正在努力找出我能在条件部分做些什么
更新
出于某种原因,我所有的测试都会返回1而不是3来表示文本节点 评论如下:
检查此选项并查看是否有帮助。next()
仅返回元素,因此不能使用它遍历文本节点。您可以改为使用DOMnextSibling
属性并检查其nodeType
属性:
现场演示:
代码:
选中此项,可能是,不知道:此问题的公认答案也很有用:谢谢,但节点一直以1而不是3返回以表示文本节点!我已经更新了我目前的问题。在我写完全相同的+1时打败我。我花了更长的时间,因为我正在阅读jQuery源代码
if(window.jQuery(this).next().length != 0){
alert(window.jQuery(this).next().get(0).nodeType);
if(window.jQuery(this).next().get(0).nodeType == 3){
alert('right has text');
}
window.jQuery('body').find('a').each(function (i) {
var nextNode = this.nextSibling;
if (nextNode && nextNode.nodeType == 3) {
alert("Next sibling is a text node with text " + nextNode.data);
}
});