2011-01-05 26 views
3

私はこのHTML持ってjQueryのそれぞれとattrの機能

<input id="testme" test="something"/><label test="something2"></label> 

と、これはここでデモ

$("[test]").each(alert($(this).attr("test"))); 

をJS:

jsfidde

を私は警告が私を与えるだろうと思うだろう"something"、次に"something2"。しかし、それは何もしません!

何が起こっていますか?

答えて

13

あなたは間違ったことを警告しています。 eachは単にコレクション/ jQueryを返します。各コールバックの内部で、カスタム属性の値を警告する必要があります。また、優れた標準準拠のために[カスタム属性] [1]を割り当てる場合は、data-という接頭辞を使用してください。

$(".classname").each(function(){ 
    alert($(this).attr("classname")); 
}); 
+0

haha​​。よろしくお願いします。間違った場所に警報を鳴らすことは、タイプミスでした。あなたが示したように、問題は私が 'function(){'が不足していたことでした。そして、私は 'data-'を使うつもりです。これは実際に 'data-'を使うつもりだったので、問題を起こしていると思っていたらそれを取り除きました。しかし、私はちょうど 'function(){'事を忘れるという愚かな間違いをしました。ありがとう! – kralco626

1

.each()関数を受け取り、それが代わりに次のようになります。

$("[test]").each(function() { 
    alert($(this).attr("test")); 
}); 

You can test it out here

関連する問題