2009-03-10 13 views
1

私は `のid =「violacao」すべての要素にクリックイベントを追加したい:このJQueryはどこが間違っていますか?

$(document).ready(function() { 
    jQuery('#violacao').click(function() { 
     alert('teste'); 
    }); 
}); 

しかし、単に最初のリンクは、クリックに応答します。

jQuery("a").click(function() { 
    alert('teste'); 
}); 

それはすべてのリンクが影響を受けていることを除いて、正常に動作します:私はこの方法を試したとき

<tr> 
    <td><a href="#" id="violacao">40954589</a></td> 
    <td>Perda de Comunicação</td> 
</tr> 

<tr> 
    <td><a href="#" id="violacao">88692020503</a></td> 
    <td>Perda de Comunicação</td> 
</tr> 

:これは、生成されたHTMLです。なにが問題ですか?

答えて

19

HTML内のIDは一意であることを意味します(ドキュメントごとに1つ)。 IDをクラスに変更して(#の代わりに。を使用すると)うまくいくはずです。

+0

「violacao」というIDのCSS定義がある場合は、それに応じて調整してください –

+0

ありがとう!今それは働いている。 – Ricardo

+0

良い点ダン!それがうまくいってうれしいRicardo – spmason

1

スティーブメイソンが言っていることは本当ですが、実際の問題はそうではありません。

IDをクラスに変更すると、問題は解決されず、すべてのリンクが影響を受けます。あなたが影響を与えることを目指している場合

代わりに、1つの< A>は、次のいずれかを実行する必要があります

a)の各< A>あなたが最初にやっていたように、その後、何かをするにユニークなIDを割り当てます。または

B)クラスを割り当て、使用する:第1のセレクタ:

jQuery("a.violacao:first").click(function(){ 
    alert('teste'); 
}); 

クラスviolacaoと最初に一致したアンカーに適用されます。あるいは、特定のアンカーに影響を与えたい場合は、eq(index)を使用できます。

セレクターの全リストについては、http://docs.jquery.com/Selectorsをご覧ください。

+0

SebaGRの情報ありがとう! – Ricardo

+0

SebaGRが質問を誤読したと思います。 1つのリンクを選択するのはポスターが望むものではなく、問題の一部であった。この場合、クラス解決策は正しいですが、すべてのリンクを選択しません。ちょうどそれをクリアしたかった。 – Wick

+0

私はそうは思わない...彼は言った "それはすべてのリンクが影響を受けている以外は、正常に動作します。"ので、 "except"という単語は、1つのアンカーを選択することが望ましい動作であると考えています。 – Seb

関連する問題