2015-01-12 158 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>