Подтвердить что ты не робот

Каковы преимущества использования имени vs id в jquery

<input type ="button" name="buttonsel" id="buttonse1"/>

$("#buttonse1") VS $("[name=buttonse1]")

В чем преимущества использования имени и id в jquery

4b9b3361

Ответ 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 обеспечит степень уникальности, а не имя, которое вы используете в своем селекторе.