2011-02-04 5 views
0

jQueryPadを使用してJavaScriptを試してみました。jQueryがすべてのアンカーリンクをHTMLで見つけられない

<TABLE style="BORDER-COLLAPSE: collapse" id=phMain_Questions class=GridView border=1 rules=all cellSpacing=0><TBODY> 
<TR class=GridViewHeader> 
<TH scope=col>&nbsp;</TH> 
<TH scope=col>&nbsp;</TH></TR> 
<TR class=GridViewRow> 
<TD><A id=hlQuestionDetails href="javascript:AddQuestionWindow_Open(3, 39, 'False');">This is a test question</A> </TD> 
<TD><A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$phMain$gvQuestions$ctl02$ctl00", "", true, "", "", false, true))'>Remove</A> </TD></TR> 
<TR class="GridViewRow GridViewRowAlt"> 
<TD><A id=hlQuestionDetails href="javascript:AddQuestionWindow_Open(3, 40, 'False');">This is an option question.</A> </TD> 
<TD><A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$phMain$gvQuestions$ctl03$ctl00", "", true, "", "", false, true))'>Remove</A> </TD></TR></TBODY></TABLE> 

私がしたいことは、そのid属性hlQuestionDetailsをすべてaのタグを選択することです:私は、次のHTMLスニペットを持って考えます。この時私の刺しは次のとおりです。

var links = $("a#hlQuestionDetails"); 
alert($(links).length); 

aタグの数は1ですが、HTMLで見ることができるように、その名前を持つ2個のaタグが実際にあります。

jQueryがaタグのうち1つを残している理由を理解できないので、誰かが私がここで間違っていることを指摘できますか?

編集:

コメントに関しては、私は問題を参照してください。 HTMLは、ASP.NETグリッドビューコントロールによって生成されました。だから代わりに、私は推測するクラス属性を使用する必要がありますか? 乾杯。 Jas。

答えて

2

は、idは要素のユニークな識別子べき属性。代わりにclass属性を使用する必要があります。

+0

私はこれを答えとして受け入れましたが、私は他の人も同様の提案をしていることを認識しています。他のユーザーを怒らせたくはありませんでしたが、答えとして1つを選択する必要がありました。 –

2

のID HTML内で一意で、そのIDを有する第1の整合要素を返しdocument.getElementByIdにIDセレクタマップしなければならない - クラスセレクタ各要素代わりclassを与え、使用:

var links = $("a.hlQuestionDetails"); 
1

IDはHTML文書内で一意でなければなりません(したがってID)。ほとんどのブラウザでは、同じIDを持つ要素が複数ある場合、の最初の要素はです。使用するクラスの代わりに

<A class="hlQuestionDetails" ...>This is a test question</A> 

やクラスセレクタを持つ要素を取得:

var links = $("a.hlQuestionDetails"); 
1

idは、ユニークなという識別子で、HTMLページに指定する必要があります。そのため、getElementById(...)は1つの要素のみを返します。私はjQueryが同じことをすると思います。代わりにクラス属性とセレクタを使用してみてください:

<a href=".." class="hlQuestionDetails">...</a> 
<a href=".." class="hlQuestionDetails">...</a> 
<a href=".." class="hlQuestionDetails">...</a> 

alert($('a.hlQuestionDetails').length) 
1

タグのIDは一意である必要があり、それは引用符で囲む必要があります。複数のタグをターゲティングする場合は、ダミーのクラス(質問)を使用してから$('.Question')を使用してタグをターゲティングします。

関連する問題