Каковы преимущества использования имени vs id в jquery
<input type ="button" name="buttonsel" id="buttonse1"/>
$("#buttonse1")
VS $("[name=buttonse1]")
В чем преимущества использования имени и id в jquery
Ответы
Ответ 1
ИЗМЕНИТЬ
- Имена в name= должны быть уникальными в пределах формы. Имена в id = должны быть уникальными внутри всего документа.
- JavaScript нуждался в уникальных именах, но здесь было слишком много документов без уникальных имен name=, поэтому люди W3 придумали тег id, который должен был быть уникальным. К сожалению, старые браузеры этого не понимали. Поэтому вам нужны обе схемы именования в ваших формах.
проверьте полную информацию здесь: http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
Id может идентифицировать уникальный элемент.
valid html содержит уникальный идентификатор для каждого элемента.
<input type ="button" name="buttonsel" id="buttonse1"/>
<input type ="button" name="buttonsel" id="newbutton"/>//valid for both id and name
<input type ="button" name="buttonsel" id="buttonse1"/>//not valid as id repeated but name is valid even if repeated
Но вы можете указать одно и то же имя для нескольких элементов, которые могут не найти элемент неравномерно.
Ответ 2
Выбор по идентификатору по-прежнему выполняется быстрее, чем имена в jquery.
Ответ 3
Хорошо, $("#")
по сравнению с JS native document.getElementById()
работает медленнее, но это самый быстрый селектор jQuery, который вы можете найти. Но не беспокойтесь о скорости. #
просто #
и только один в вашей DOM?
Доступ к атрибутам всегда медленнее, и если учесть, что мы планируем использовать name
, как мы имеем дело с classes
, и мы планируем иметь 1000+ элементов с тем же именем.... чем вы может сделать некоторые тесты скорости, если это ваша проблема.
Как бы то ни было, ваш вопрос кажется немного странным, если у вас уже есть идентификатор, и вы знаете, что идентификатор вау! чем вы мне скажите, почему не использовать его?:)
Ответ 4
ID
является уникальным. Все элементы HTML поддерживают атрибуты ID
. В jQuery с помощью селектора ID
выполняется быстрее, используя name
name
не уникален, и несколько элементов могут использовать один и тот же name
. Атрибуты name
применимы только к элементам a
, form
и input
.
Ответ 5
Если вы используете id
, у вас будет выбран только один элемент, и JS перестанет искать другой, если вы его уже нашли.
Используя name
в $('[name="something"]')
, вы можете иметь более 1 элемента. jQuery будет выглядеть в каждом HTML node для name="something"
. Атрибут name
действителен только для элементов input
(даже если вы можете использовать его в других элементах). Кроме того, может быть несколько допустимых элементов с атрибутом name
(например: <input type="radio"/>
и <input type="checkbox"/>
).
Ответ 6
Самое главное, вы обнаружите, что использование #id в селекторе намного быстрее. См. Здесь:
http://www.componenthouse.com/jQuery-Performance-analysis-of-selectors-td20.html
Во-вторых, идентификатор в элементе HTML обеспечит степень уникальности, а не имя, которое вы используете в своем селекторе.