2016-07-26 12 views
1

は、それがプロパティの値だことで要素を選択/取得する方法はあります/プロパティ値によって、select要素を得る:例えばjQueryのは、それが属性値で可能であるのと同様に、

$('[attribute="value"]') 

、私は設定のですこのようにjQueryを使用して、プロパティ:

$('#foo').prop('my-property', 'value'); 

、その後、私はプロパティ'my-property'を持つ要素を見つけるしたいと、それは価値'value'を持っています。

+0

特定のプロパティはありますか? –

+0

入力値のような意味ですか? – Zeph

+0

特定の要素はありますか? – MCMXCII

答えて

5

いいえ、プロパティ値で選択できるセレクタレベルで公開されるものはありません。

属性の中には、属性を反映するものがあります。つまり、属性を設定すると属性セレクタを使用できるようになります。たとえば、要素のdefaultValueプロパティは、value属性(valueプロパティではありません)を反映しています。

それ以外の場合は、可能なものを選択して、filterを使用して、結果のリストを実際に必要な要素のみにフィルタすることができます。

たとえば、私はこのようにjQueryを使用してプロパティを設定したい::

$('#foo').prop('my-property', 'value'); 

ありませんが、直接その性質によって選択する方法はありません、あなたはあなたの編集再

上記の私のfilter提案のようなものが必要です:

var list = $("something-that-gets-you-close").filter(function() { 
    return this["my-property"] == "value"; 
}); 

あなたマイルその後、

$("#foo").attr("data-my-property", "value"); 

var list = $("[data-my-property='value']"); 

を、それを選択するために、(内部の引用符がCSS identifierの定義に合致する値についてはオプションです):GHT代わりdata-*の属性を使用することを検討してください。属性値は常に文字列であることに注意してください。

注意:jQueryのdata関数は、data-*属性の単純なアクセサですという誤解があります。そうではない。要素に関連付けられたデータキャッシュを、で初期化されたからdata-*属性まで、jQueryによって管理しますが、それらから切り離されています。特に.data("my-property", "value")は、後で[data-my-property=value]セレクタを介して見つけることができません。

+1

このような徹底的な答えをありがとうございます!実際には、これは私がインターネット上でそれを検索した後、私自身も考えていたものです。とにかく、今ではそれもここにあります。 –

関連する問題