我通过jQuery对象列表进行迭代,然后检查nextSibling属性是null
。不幸的是,html注释被视为类型对象的兄弟。我怎么能抓住这个?我需要一个触发obj.nextSibling == null || obj.nextSibling == comment
答案 0 :(得分:2)
如何编写函数来执行此操作,只返回 Elements (即node.nodeType === 1
)
function nextElement(node) {
while (node = node.nextSibling) if (node.nodeType === 1) return node;
return null;
}
这是做什么的,
// while
node = node.nextSibling // get next sibling, if falsy break while
if (node.nodeType === 1) // if it is an Element, return it
// else go back to while
return null; // if we get here, next sibling was null
您可以看到 nodeType here on MDN的不同值列表。
答案 1 :(得分:1)
评论节点不是null
,它们是评论节点(如果它们是null
,它们会使第一个条件为真......)。因此,您需要测试nodeType
以查看它是否为评论。
obj.nextSibling == null || obj.nextSibling.nodeType == 8
参考:https://developer.mozilla.org/en-US/docs/Web/API/Node.nodeType
答案 2 :(得分:0)
也许您需要使用.filter("*")
;
像这样:
obj.siblings().filter("*")
或obj.siblings("*")
;