IE getelementbyid用于文档中的对象

时间:2010-08-01 05:50:31

标签: javascript internet-explorer

对于文档中已存在的对象,我需要getElementById 在示例中,我想获得元素“test”,它是parentDiv1的子 它在FF中工作正常,但不适用于IE。有小费吗?

示例:

<div id="parentDiv1">
    <ul id="test1">test</ul>
</div>
<div id="parentDiv2">
    <ul id="test2">test</ul>
</div>
<script>
    var prtDiv1 = document.getElementById("parentDiv1");
    var test1 = prtDiv1.getElementById("test1");
</script>

2 个答案:

答案 0 :(得分:1)

您的文档中不应包含多个具有相同ID的元素。使用课程。 最简单的方式让您按照自己的意愿行事,然后使用jQuery并编写$('#parentDiv1 ul.test')来选择您的元素。除了jQuery之外,你需要在IE中的javascript中实现getElementsByClassName,因为afaik它本身仍然不支持它。

编辑:确保没有任何与目标ID具有相同值的“名称”属性,并且您设置的js变量的名称与目标ID不同。

答案 1 :(得分:0)

在节点上调用getElementById是非标准的......如果你想获得ID为test1的元素(因为它是它的id,这个应该是唯一的)并检查它是标识为parentDiv1的元素的子元素,而不是使用它:

// get the node with ID `test1` in the document
var test1 = document.getElementById("test1"); 

// Check if it is a child of `parentDiv1`
var isChild = document.getElementById("parentDiv1").contains(test1); 

您可以查看有关contains here的MDN文档。