div addClass только на ОДНОМ div - PullRequest
2 голосов
/ 22 января 2010

Когда я делаю что-то вроде:

$('#container').addClass("contract");

Это только добавляет класс к первому div с идентификатором контейнера

Когда я делаю что-то вроде:

$('.container').addClass("contract");

Добавляет класс ко ВСЕМ элементам div с контейнером класса

ПОЧЕМУ?

Ответы [ 3 ]

2 голосов
/ 22 января 2010

Каждый идентификатор элемента должен быть уникальным. Идентификатор указывает на один и только один атрибут. Jquery или любой другой фреймворк даже не будет учитывать, что у вас может быть более одного элемента с определенным идентификатором. Все ваши элементы должны иметь разные идентификаторы. Javascript и DOM ожидают этого (например, document.getElementByID вернет только один элемент и теперь может работать вообще, если идентификатор дублируется) Все этого ожидает.

1 голос
/ 22 января 2010

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

1 голос
/ 22 января 2010

Поскольку атрибут id должен быть уникальным в документе HTML. Поэтому нет необходимости искать другие элементы с id="abc", когда вы найдете первый.

...