Рейтинг:
14
Kornfeld Eliyahu Peter
В HTML запрещено, чтобы более одного элемента имели один и тот же идентификатор. В других мирах идентификатор должен быть уникальным по всей странице. Поэтому, если браузеры столкнутся с неуникальным идентификатором, они заменят его случайным уникальным идентификатором. Они делают это в основном только для более позднего элемента, но некоторые делают это для всех.
Это означает, что при поиске идентификатора вы получите максимум один результат.
Непонятно, почему вы даете один и тот же идентификатор для более чем одного элемента, но если вы ищете группировку, используйте атрибут name - это может быть не уникальным...
moyna coder
Итак, что же мне делать ?.. только по именам атрибутов ?
Kornfeld Eliyahu Peter
Я не знаю, какова ваша цель и почему в первом olace вы создали дубликат id, поэтому я не могу сказать, что делать...
moyna coder
для некоторого упрощения я думал использовать этот способ и просто хотел знать, почему это невозможно.. спасибо :)
ZurdoDev
Это совсем не так. Браузеры по-прежнему будут работать и отображать оба элемента управления, и они вообще не изменят идентификатор.
Kornfeld Eliyahu Peter
Я не говорил, что браузер не будет работать. Ни один из этих браузеров не изменит ваш HTML-код... Однако DOM будет отличаться внутренне (каждый элемент будет иметь свой идентификатор), и для этого выбор по идентификатору даст вам максимум один результат...
ZurdoDev
Попробуйте решение 2. Это сработает. Конечно, это не очень хорошая идея, но она сработает.
Рейтинг:
0
ZurdoDev
Цитата:
если я хочу назвать id2. Я попробовал как $('#id2 #name'). но я не мог достать.
Ты уже близко. Вы упускаете запятую.
Это сработает:
$("#id2", "#name"); // find control with id=id2 inside of element with id = name
Но Питер прав, вам гораздо лучше исправить то, что вызывает дубликаты идентификаторов.
Kornfeld Eliyahu Peter
Принимая это:
&ЛТ;див ИД="id1 в"&ГТ;&ЛТ;Спан ИД="наименование"и GT;1&ЛТ;/службы&ГТ;&ЛТ;/дел&ГТ;
&ЛТ;див ИД="ID2, которое"&ГТ;&ЛТ;Спан ИД="наименование"и GT;2&ЛТ;/службы&ГТ;&ЛТ;/дел&ГТ;
Ваш jQuery ничего не вернет, в то время как getElementById вернет первое... Нет никакого способа, чтобы добраться до второго пролета, используя идентификатор...
ZurdoDev
Конечно, будет. предупреждение($("#имя", "#ID2, которое было").длина) будет 1.
Kornfeld Eliyahu Peter
Существует большая разница между $("#id2", "#name") и $("#name", "#id2")!!!
И это один из тревожных недостатков JQuery, который был создан для обработки множества дочерних элементов одной и той же характеристики с разными родительскими, но может быть использован для злоупотребления HTML... Причина в том, что в этот момент jQuery фактически пересекает дерево DOM вместо использования функций JavaScript...