2

マークアップが次のようになっている場合:

<div data-test="{ "value" : "bar", "_id" : 1234, "name" : "john", "age" : 25 }">...</div>
<div data-test="{ "value" : "foo", "_id" : 1235, "name" : "paul", "age" : 26 }">...</div>
<div data-test="{ "value" : "drummer", "_id" : 1236, "name" : "ringo", "age" : 22 }">...</div>

キー「bar」または「foo」しかない場合、JQuery を使用して特定の要素を選択するにはどうすればよいですか?

各行のオブジェクト全体を取り出して、一致するものを探して反復処理することもできますが、より効率的な方法がある場合はそうしません。

オブジェクトのプロパティに基づいてきれいに選択するにはどうすればよいですか?

4

2 に答える 2

2

これを試して

$('div[data-test$=": bar }"]')
$('div[data-test$=": foo }"]')

詳細はこちら

更新: 属性が bar/foo で終わっていない場合は、試すことができますcontains selector

$('div[data-test*="'value' : 'bar'"]')
$('div[data-test*="'value': 'foo'"]')

詳細はこちら

または、値で始まる場合は開始セレクターを使用することもできます

于 2012-10-18T08:53:38.803 に答える
1

以下を使用できます。

$("div").filter(function() {
    return $(this).data("test").value == "bar";
})

jQuery.data()JSON 形式のデータ値を対応するオブジェクトに自動的に解析します。

フィドル

于 2012-10-18T09:41:26.767 に答える