W3Schools тест на jQuery
на сайте W3Schools размещена викторина jQuery...
http://www.w3schools.com/quiztest/quiztest.asp?qtest=jQuery
Вопрос № 19 выглядит следующим образом,
посмотрите на следующий селектор jQuery: $("div#intro .глава.)"
что он выбирает?
A. первый элемент с id= "head" внутри любого элемента div с class= "intro"
B. Все элементы с классом= " head" внутри первого элемента div с id= "intro"
C. Все элементы div с id= "intro"или class="head"
Я получил его правильно, выбрав ответ B.
мой вопрос имеет отношение к формулировке ответа B.
разве слово "первый" не должно быть удалено из ответа?
B. Все элементы с class= "head" внутри элемента div с id= "intro"
ID определяется как " A уникальный идентификатор элемента", поэтому не совсем понимаю, почему они будут ссылаться на " the первый div элемент с id=intro"
Я не верю, что он намеренно пытается быть сложным, поскольку все остальные вопросы в этой викторине очень просты.
Спасибо за ваши мысли.
EDIT:
Я сообщил об этой ошибке в W3Schools и направил их на это нитка.
EDIT #2:
Это еще один вопрос из той же викторины.
2 ответов
Вы правы,первый язык мог (должны) будут удалены из всех вариантов.
по словам HTML 4.01 Spec:
этот атрибут присваивает имя элемент. Это имя должно быть уникальным в документ.
дополнительно, согласно jQuery документация для селектора идентификаторов:
выбирает один элемент с данный id атрибут
под капотом селектор использует document.getElementById("...")
. Интересно,спецификация для этой функции государства:
поведение не определяется, если более один элемент имеет этот ID.
Итак, предположим у вас есть два элемента с одинаковым id
, результаты функции непредсказуемы и зависят от браузера.
Sidenote: W3Schools не рассматривается как один из лучших мест для изучения JavaScript / jQuery. Уважаемая альтернатива JavaScript -руководство MDC по JavaScript. Для jQuery, проверьте уроки
действительно поведение документа.метода getElementById("...") не определено, если этот идентификатор имеет более одного элемента.
однако, как последовательно пытается указать сайт w3schools, поведение jQuery в этой ситуации четко определено. Если этот идентификатор имеет более одного элемента, то первый будет выбран один.
никто не потворствует более чем одному элементу, имеющему определенный идентификатор; это все еще противоречит правилам. Однако, в отличие от getElementById, jQuery имеет определенную реакцию, если это правило нарушено.