2015-01-12 214 views
1

我有一個界面可以在顯示不同的div元素之間進行切換。當它切換顯示哪個元素時,我需要訪問該div元素的特定子節點,每個div元素的子元素排列方式不同。從屬性選擇兒童的節點

childNodes和children屬性都返回一個對象,該對象只能選擇具有item(index)的子項,因爲相關子元素的索引在每個div中都不相同,所以很煩人。對於量角器,我使用了能夠使用除索引之外的其他參數進行搜索的webmanager.by(選擇器)。有沒有類似的東西可以用來選擇data-relevant =「true」的子節點。我也不確定該屬性是在HTML中指定哪個子節點相關的最佳方式。

這是一個Angular應用程序,如果有幫助。

+1

請發表您的代碼。 – EricBellDesigns

回答

1

如果要選擇與數據相關=一些父元素「真」的子節點,您可以使用選擇方法

element.querySelector()
,將返回第一個匹配在特定情況下,元素...

它可以像

父element.querySelector( 「[數據相關= '真']」);

或者如果您想要在父div中選擇所有與數據相關的屬性值爲true的段落p:parentDiv.querySelectorAll(「p [data-relevant ='true']」);

你可以找到 http://www.w3.org/TR/selectors-api/#processing-selectors

一些例子另一種方法是使用一種特殊的類來確定哪些子節點相關... 你能得到這個元素/或getElementsByClassName方法的許多元素(someClassName )

代碼示例隨着.querySelectorAll()方法:

<script type="text/javascript"> 

    window.addEventListener("load", init, false); 

function init(){ 
    var parentDiv = document.getElementById("divWithChildren"); 
    var relevantChildren = parentDiv.querySelectorAll("[data-relevant='true']"); 
    alert (relevantChildren[2].id); // this will give the id of the 3rd child element with data-relevant='true' 
} 

</script>