用于在XPath中搜索元素特定祖先的JavaScript?

时间:2011-02-26 09:51:25

标签: javascript dom css-selectors

从给定节点向下搜索与Javascript函数querySelectorAll()querySelector()完美兼容并且与浏览器兼容。

此函数允许声明用于搜索子元素的任何CSS3选择器。据我所知,没有办法搜索家长节点:W3 CSS3 Selectors

我想用XPath ax ancestor 来搜索父节点。 像(XPath):

select="./ancestor::*[@attributex='xxx'][2]"

请注意,我还没有尝试过上面的XPath表达式,我不确定它是否只选择最近的祖先,但这是我的意图。

我知道我可以directly use XPath in JavaScript,但我宁愿避免它,因为我不知道1)浏览器兼容性和2)向下搜索与querySelector/All()的工作正常。

我还宁愿避免一个for循环搜索一个.parentNode,然后将其.getAttribute("attributex")与搜索到的{{1}}进行比较。

如何使用跨浏览器兼容的JavaScript实现此目标?

1 个答案:

答案 0 :(得分:2)

我认为你会欣赏jQuery的父母([selector])方法。当然,它在兼容性方面具有优势。看看http://api.jquery.com/parents/