Каково стандартное поведение ошибки, когда несколько элементов имеют один и тот же идентификатор? - PullRequest
1 голос
/ 06 января 2011

Я работаю над автоматизированными тестами с Selenium для сложного веб-приложения корпоративного уровня, и у меня возникли некоторые проблемы.

Кажется, программисты не считают стандартный HTML слишком высоким приоритетом,Страницы не соответствуют вообще.Моя текущая проблема заключается в том, что несколько элементов имеют одинаковое значение id, что, очевидно, не очень хорошая вещь.Мне не разрешено изменять его, и в любом случае я не думаю, что хотел бы.

Что происходит, когда многие элементы имеют одинаковый идентификатор?Как популярные браузеры справляются с этим?Я особенно спрашиваю в случае document.getElementById: какой возвращается?

Ответы [ 2 ]

1 голос
/ 06 января 2011

document.getElementById возвращает первый элемент с идентификатором

, протестированным в FF, IE, Chrome, Safari & Opera

1 голос
/ 06 января 2011

Если в document.getElementId нет чего-то внутреннего, к чему я не причастен, я ожидаю, что оно вернет первый элемент, с которым оно столкнется.(См. Эту скрипту: http://jsfiddle.net/rrTra/)

Хотя поведение браузера может отличаться, я считаю, что большинство игнорирует другие записи без сообщения об ошибке.

РЕДАКТИРОВАТЬ

Найдена эта ссылка: http://reference.sitepoint.com/javascript/Document/getElementById

Когда несколько элементов имеют один и тот же идентификатор

Поведение этого метода, когда существует более одного элемента указанного идентификатора, не стандартизировано,потому что документ не может содержать более одного элемента с одинаковым идентификатором. Но для справки, в этом случае все браузеры возвращают первый найденный элемент.

...