2011-02-26 39 views
0

給定節點向下搜索奇妙的作品和跨瀏覽器兼容的JavaScript功能querySelectorAll()querySelector()用於搜索元素的特定祖先的JavaScript像XPath一樣?

該函數允許聲明任何CSS3選擇器來搜索子元素。至於我也明白了,有沒有辦法來搜索父母節點:W3 CSS3 Selectors

我想搜索的父節點太喜歡可以使用XPath斧頭祖先。 喜歡的東西(的XPath):

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

請注意,我還沒有嘗試過上述XPath表達式,我不知道這是否只是選擇最近祖先,但那是我的本意。

我知道我可以directly use XPath in JavaScript,但我寧願避免它,因爲我不知道1)瀏覽器兼容性和2)向下搜索與querySelector/All()正常工作。

我也寧願避免一些for循環搜索一個接一個.parentNode,並比較其與.getAttribute("attributex")搜索之一。

任何想法如何使用跨瀏覽器兼容的JavaScript來實現這一點?

回答

2

我想你會感激jQuery的父母([selector])方法。確保它在兼容性方面具有優勢。看看http://api.jquery.com/parents/

+0

感謝您指點我在jQuery,父母()和最接近()方法看起來很有前途。雖然,我不想使用exernal庫來進行當前的項目(但我想看看jQuery已經有一段時間了)。看起來我現在堅持使用for-loop。 – fabb 2011-02-26 12:11:56

+0

好吧,我也不知道要做這個'crossbrowserly',除非你創建一個獲得父母()的遞歸函數,並且比較它的id與你期望的匹配。我認爲jQuery是完美的,因爲你只能使用它的核心api來做到這一點,而不需要使用任何奇特的插件,或者不得不研究jQuery如何工作。 – 2011-03-01 21:55:56