<input type ="button" name="buttonsel" id="buttonse1"/>
$("#buttonse1")
VS$("[name=buttonse1]")
jqueryで名前とIDを使用する利点は何ですか
<input type ="button" name="buttonsel" id="buttonse1"/>
$("#buttonse1")
VS$("[name=buttonse1]")
jqueryで名前と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
ただし、要素を不均等に検索できない可能性のある複数のアイテムに同じ名前を付けることができます。
IDによる選択は、jqueryの名前による選択よりも高速です。
わかりました。JS$("#")
ネイティブdocument.getElementById()
と比べて遅いですが、これはあなたが見つけることができる最速の jQuery セレクターです。しかし、スピードを気にしないでください。#
は単純#
で、DOM には 1 つしかありませんよね?
属性へのアクセスは常に遅くなりますname
。私たちが扱っているように使用するclasses
予定があり、同じ名前の要素を 1000 以上持つことを計画している場合....それが懸念される場合は、いくつかの速度テストを実行するよりも.
すでにIDを持っていて、IDがすごいことを知っているなら、あなたの質問は少し奇妙に思えます!使用しない理由を 1 つ教えてください。:)
を使用している場合はid
、要素が 1 つしか選択されておらず、既に要素が見つかっている場合、JS は別の要素の検索を停止します。
name
inを使用すると、$('[name="something"]')
複数の要素を持つことができます。jQuery はすべての HTML ノードで を検索しますname="something"
。また、name
属性は要素に対してのみ有効ですinput
(他の要素で使用できますが)。また、属性を持つ有効な要素が複数存在する場合がありname
ます (例: <input type="radio"/>
and <input type="checkbox"/>
)。
ID
ユニークです。すべての HTML 要素がID
属性をサポートしています。jQueryでは、id
セレクターを使用する方が高速ですname
NAME
は一意ではなく、複数の要素が同じ を共有できますname
。属性は、および要素NAME
にのみ適用されます。a
form
input
最も重要なことは、セレクターで #id を使用する方がはるかに高速であることです。ここを参照してください:
http://www.componenthouse.com/jQuery-Performance-analysis-of-selectors-td20.html
次に、HTML 要素の ID は、セレクターで名前を使用するのとは対照的に、ある程度の一意性を保証します。