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

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

jqueryで名前とIDを使用する利点は何ですか

4

6 に答える 6

12

編集

  • name= 内の名前は、フォーム内で一意である必要があります。id= 内の名前は、ドキュメント全体で一意である必要があります。
  • JavaScript には一意の名前が必要でしたが、一意の name= 名のないドキュメントがすでにあまりにも多く出回っていたため、W3 の人々は一意である必要がある id タグを発明しました。残念ながら、古いブラウザはそれを理解できませんでした。したがって、フォームには両方の命名スキームが必要です。

ここで詳細を確認してください: http://mindprod.com/jgloss/htmlforms.html#IDVSNAME


Id は要素を一意に識別できます。

有効な html には、各要素の一意の ID が含まれています。

<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

ただし、要素を不均等に検索できない可能性のある複数のアイテムに同じ名前を付けることができます。

于 2012-11-02T07:58:25.000 に答える
4

IDによる選択は、jqueryの名前による選択よりも高速です。

于 2012-11-02T07:58:08.463 に答える
3

わかりました。JS$("#")ネイティブdocument.getElementById()と比べて遅いですが、これはあなたが見つけることができる最速の jQuery セレクターです。しかし、スピードを気にしないでください。#は単純#で、DOM には 1 つしかありませんよね?

属性へのアクセスは常に遅くなりますname。私たちが扱っているように使用するclasses予定があり、同じ名前の要素を 1000 以上持つことを計画している場合....それが懸念される場合は、いくつかの速度テストを実行するよりも.

すでにIDを持っていて、IDがすごいことを知っているなら、あなたの質問は少し奇妙に思えます!使用しない理由を 1 つ教えてください。:)

于 2012-11-02T08:10:39.457 に答える
2

を使用している場合はid、要素が 1 つしか選択されておらず、既に要素が見つかっている場合、JS は別の要素の検索を停止します。

nameinを使用すると、$('[name="something"]')複数の要素を持つことができます。jQuery はすべての HTML ノードで を検索しますname="something"。また、name属性は要素に対してのみ有効ですinput(他の要素で使用できますが)。また、属性を持つ有効な要素が複数存在する場合がありnameます (例: <input type="radio"/>and <input type="checkbox"/>)。

于 2012-11-02T08:09:06.587 に答える
1

IDユニークです。すべての HTML 要素がID属性をサポートしています。jQueryでは、idセレクターを使用する方が高速ですname

NAMEは一意ではなく、複数の要素が同じ を共有できますname。属性は、および要素NAMEにのみ適用されます。aforminput

于 2012-11-02T08:03:01.863 に答える
0

最も重要なことは、セレクターで #id を使用する方がはるかに高速であることです。ここを参照してください:

http://www.componenthouse.com/jQuery-Performance-analysis-of-selectors-td20.html

次に、HTML 要素の ID は、セレクターで名前を使用するのとは対照的に、ある程度の一意性を保証します。

于 2012-11-02T08:03:33.597 に答える