это допустимый HTML для JQuery - PullRequest
1 голос
/ 01 августа 2011

У меня есть следующий HTML.

div#main-content div#right-col div#post-show div#post-img div#post-img-large{

}
div#main-content div#right-col div#post-show div#post-img div#post-img-large 
   img#post-img-large{
}

Как видите, я использую один и тот же идентификатор для div и img.

Это разрешено?Я знаю, что он работает нормально, но не запутается ли jQuery, если я обращусь к id post-img-large?

Ответы [ 4 ]

3 голосов
/ 01 августа 2011

ID не должны использоваться более чем на одном элементе на любой странице.Они используются для уникальной идентификации элементов.

Теперь, в вашем конкретном примере, если вы используете jQuery, всегда есть способы выбора элементов, которые вы хотите, квалифицируя ваши селекторы с дополнительной информацией (div # ID, img # ID) - jQuery не будетсбит с толку, но вы должны придерживаться стандартов и не использовать идентификаторы повторно.

С W3c: http://www.w3.org/TR/html4/struct/global.html (html4, но он все еще применяется)

7.5.2 Element identifiers: the id and class attributes

Attribute definitions

id = name [CS]
This attribute assigns a name to an element. This name must be unique in a document.
class = cdata-list [CS]
This attribute assigns a class name or set of class names to an element. Any number of elements may be assigned the same class name or names. Multiple class names must be separated by white space characters.
3 голосов
/ 01 августа 2011

Из предыдущего опыта:

Для селекторов идентификаторов jQuery использует функцию JavaScript document.getElementById (), который чрезвычайно эффективен. Когда другой селектор прикреплен к селектору идентификаторов, например h2 # pageTitle, jQuery выполняет дополнительную проверку, прежде чем идентифицировать элемент как матч.

Каждое значение идентификатора должно использоваться только один раз в документе. Если больше чем одному элементу был присвоен один и тот же идентификатор, запросы, использующие этот идентификатор выберет только первый соответствующий элемент в DOM. Это поведение однако не следует полагаться на него; документ с более чем одним элемент с тем же идентификатором недопустим.

Источник: http://api.jquery.com/id-selector/

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

Проверьте каждый код в http://www.w3.org

0 голосов
/ 01 августа 2011

Это недействительный HTML, id s должен быть уникальным.

И да, возможно, jquery не будет работать должным образом из-за дублированных идентификаторов. На самом деле, я видел вопрос с нарушенной функциональностью здесь, на SO, всего пару дней назад.

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