2011-11-25 98 views
1

我想使用document.selectQueryAll()element.selectQueryAll()使用其部分名稱來選擇頁面上的多個元素。如何使用部分屬性名稱選擇DOM元素?

注意:不使用部分屬性值。

爲什麼? (你可能知道一個更好的辦法直接做到這一點使用命名空間???)

我想找到的所有元素,其中

<div xmlns:${prefix}='{a particular namespace value I know}' > 

我想弄清楚的命名空間是什麼前綴是,我知道我正在尋找一個特定的命名空間,所以我可以去搜索特定命名空間中的子元素。

我計劃找上述的元素,找出命名空間,然後去尋找我的子元素

querySelectAll("[typeof='" + ${prefix} + ":" + "Offering" + "'") 

這樣我就可以找到所有的子元素匹配這個

<div typeof="gr:Offering"> 

但我不會提前知道XML名稱空間前綴將被定義爲。

回答

0

使用XPath根據名稱進行查詢,因爲它是可識別名稱空間的。例如:

document.evaluate('//@*[contains(local-name(), "data-")]', document, Function, XPathResult.ANY_TYPE, null) 

將獲得文檔中的所有data-屬性。

有一個related question這可能有助於語法。

+0

DOM在內存中,我使用Javascript和CSS選擇器查詢它。我如何使用XPath解析它? –

+0

有很多解決方案,包括本機[XPathEvaluator](https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript#Implementing_a_User_Defined_Namespace_Resolver)以及諸如[e4x.js](https:// github.com/eligrey/e4x.js),[AJAXSLT](http://code.google.com/p/ajaxslt/)或[Sarissa](http://dev.abiss.gr/sarissa/) –

相關問題