2016-07-11 8 views
0

jQueryを使用して「エラー」データがバインドされているすべてのタグを検索する必要があります。 これは私がやったことです。私はコードでデータ属性を追加したので動作しません。特定のデータ属性を持つすべてのタグを見つけるには?

$('form input').data('error',1); 

console.log($('form input[data-error]')); // This is empty 

どのようにすべてを取得できますか?

+0

実際に呼び出される属性は何ですか? 'valid-error'、' data-error'または 'data-valid-error'ですか? – Xufox

+0

はい、私はそれを修正しました。 – rostamiani

+0

データjQueryメソッドは、その値を内部的に何らかの形で保持するデータ属性を作成しません。 – jcubic

答えて

4

使用filter()

$('form input').filter(function(){ 
    return $(this).data('error'); // adjust if boolean not sufficient  
}).doSomething(); 
+0

ありがとう。それだけで動作します。 – rostamiani

+0

受理されました。実際には私はそれを行うために5分待たなければならなかった:-) – rostamiani

+1

要素のプロパティのセッターがほとんどすべての場合に属性を実際に更新しないことを認識することは重要です – charlietfl

0
あなたは(何のjQueryを必要としない)、単に使用ネイティブJavaScriptを使用することができます

Selectors Level 3(CSSに似ている)との

Document.querySelectorAll()

var elms = document.querySelectorAll('[data-animal-type="fish"]'); 
 
console.log(elms.length);
<li data-animal-type="bird">Owl</li> 
 
<li data-animal-type="fish">Salmon</li> 
 
<li data-animal-type="spider">Tarantula</li>

セレクターは非常に強力であり、同様に、より高度な選択を可能:

E [FOO^=「バー」]「foo」という属性値が文字列「バー」Eと正確に を開始E要素[FOOを$ = "bar"] "foo"属性値が文字列 "bar"で正確に終わる "foo"属性の値を持つE 要素 "foo"属性値に部分文字列 "bar"が含まれる要素
E [foo | = "en"] "foo"属性がハイフンで区切られたE要素 "en"で始まる(左から)値のリスト

関連する問題