IE getelementbyid для объекта в документе - PullRequest
0 голосов
/ 01 августа 2010

Мне нужно получить 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 ]

1 голос
/ 01 августа 2010

В вашем документе не должно быть более одного элемента с одинаковым идентификатором.Используйте класс. Самый простой способ сделать то, что вы хотите - использовать jQuery и написать $('#parentDiv1 ul.test') для выбора вашего элемента.Кроме jQuery, вам потребуется реализовать getElementsByClassName в javascript в IE, потому что на самом деле он все еще не поддерживает его изначально.

Редактировать: убедитесь, что нет никаких атрибутов «name», которые бы имели такойзначение в качестве целевого идентификатора, а также то, что переменная js, которую вы устанавливаете, имеет другое имя, чем целевой идентификатор.

0 голосов
/ 26 ноября 2014

Вызов getElementById на узле не является стандартным ... Если вы хотите получить элемент с идентификатором test1 (поскольку это его идентификатор, он должен быть уникальным) и проверить, что он является потомком элемент с идентификатором 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); 

Вы можете посмотреть документ MDN о contains здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...