2014-01-17 10 views
3

Firefox возвращает null, когда я пытаюсь вызвать document.getElementById для элемента.document.getElementById не работает на Firefox

Здесь вызов

document.getElementById('interaction4793') 

Однако элемент присутствует в DOM. Я могу найти его

<interaction id="interaction4793"> 
    <action id="action3268" trigger="enter" type="hover" /> 
    <reaction delay="0" id="reaction3709" options="reloadOnly" target="page0001" transition="none" type="showPage" /> 
</interaction> 

Даже когда я выбираю его от инспектора и использовать $0 трюк он возвращает нуль:

document.getElementById($0.id) 

Когда я пытаюсь получить элементы из getElementsById это работает.

EDIT: Хром и Safari не возвращают null. Я протестировал Firefox (версия 26) на Window и MacOS и возвратил null.

EDIT2: Я думаю, что Firefox не понимает, что атрибут id - это идентификатор. Когда я поиск по атрибутам с JQuery я могу найти взаимодействие:

console.log($('#interaction102').length); // returns 0 
console.log($('[id="interaction102"]').length); // returns 1 
+5

* Когда * вы называете 'document.getElementById ('interactive4793')'? – CodingIntrigue

+2

[Работает для меня с Firefox] (http://jsfiddle.net/BsNsk/) – Andy

+0

Да, это странно, это работает и для меня на пустой странице. Когда я пытаюсь это сделать в моем webapp, он всегда возвращает null ... – Charles

ответ

1

Вопрос уже здесь ответил: JavaScript getElementByID() not working

Иногда случается, когда содержание вашего сайта не загружен и аварии.

Надежда быть полезным

EDIT1: Вы также можете попробовать это: вар yourvar = $ ("# interaction4793") [0]; Это работает для меня

+0

Я не думаю, что это так, потому что jQuery находит элемент ... – Charles

+0

На самом деле jQuery возвращает пустую коллекцию. Но элемент загружен. С Firebug, если я попробую 'document.getElementById (document.getElementsByTagName ('взаимодействие') [0] .id)' он возвращает null. Это не имеет никакого смысла для меня ... – Charles

Смежные вопросы