2016-09-19 3 views
2

На моей странице, по какой-то причине (которая, как мне кажется, не относится к теме, поэтому не объясняет), div дублируется и два divs с тем же идентификатором генерируются в моем html. При написании кода jquery для удаления всех divs, кроме самого верхнего, я обнаружил, что $("#id") возвращал мне всего лишь 1 элемент (примечание: теперь есть два div с таким же идентификатором), тогда как $("[id=]") возвращал мне 2. Итак, наконец, мой код работал с $("[id=]"), но не с $("#id"). По какой причине? Это то, что $("#id") возвращает только первый найденный элемент с указанным идентификатором?

Пожалуйста, обратите внимание, что я уже сталкивался с thread, который имеет такой же вопрос, но не отвечает на мой запрос

+3

Прочтите официальные документы https://api.jquery.com/id-selector/ и https://api.jquery.com/attribute-equals-selector/ – Satpal

+3

yes, '$ (" # id ")' будет всегда дает вам единственный результат. Также как 'document.getelementBuId'. Проверьте '$ (" body #id ")' и я уверен, что вы получите результат count 2, похожий на '$ (" [id =] ")' – vijayP

+0

Привет, Раджапрабху, увидимся после долгого времени в SO –

ответ

4

Дело в том, $("#id") всегда дает один результат, как document.getelementById() однако, когда вы делаете $("[id=]") вы найти все элементы с данным атрибутом: id, поэтому он возвращает вам несколько элементов, так как теперь он не использует javascript document.getelementById().

$("[id=]") является то, что вы используете, когда вы хотите выбрать некоторые элементы образуют документ, которые следуют некоторым правилам, как

атрибут содержит селектор [имя * =»значение»]

Выбор элементов которые имеют указанный атрибут со значением, содержащим заданную подстроку.

Атрибут содержит слово Selector [имя ~ =»значение»]

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

Атрибут Концы С Selector [имя $ =»значение»]

Выбирает элементы, которые имеют указанный атрибут со значением, заканчивающегося точно с заданной строкой. Сравнение чувствительно к регистру.

т.д.

Для получения дополнительной информации см https://api.jquery.com/category/selectors/ Однако в вас HTML, вы должны идеально держать id быть уникальным. Если вы хотите, чтобы несколько элементов имели одинаковый идентификатор, вместо этого используйте class.

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