2

yes /no'in-policy'divsの表示を切り替えるために使用しているボタンがあります

<form>
<input type="radio" id="Policy0" name="Policy" value="0" onclick="filterHotel();"><label for="Policy0">All</label>
</form>
<script type="application/javascript">
var Policy = $('input:radio[name=Policy]:checked').val()
if (Policy == 0) {  
 $('form [data-policy="0"]').toggle();              
}
</script>

<div id="24448" data-policy="0">Data here</div>
<div id="24448" data-policy="1">Data here</div>

上記のコードを使用すると、正しいdivを正常に表示/非表示にできますが、私の問題は、入力をフォーム要素でラップしたくないということです。属性の値に基づいて参照する方法はありますか?

試しまし$('input[attr=data-policy][value="0"]').toggle();たが、うまくいかないようです。私は単純な何かを見逃していると確信しています、誰かが私を正しい方向に向けることができますか?

編集:$('input[data-policy="0"]').toggle();動作しません、エラーは発生しませんが、属性を持つdivが非表示になりませんdata=policy="0"私もdata-policy=0運が悪かったのです

4

4 に答える 4

10

これで十分です:

$('[data-policy="0"]').toggle(); 

詳細については、Attribute Equals Selector [name="value"]のドキュメントをご覧ください。

于 2012-10-02T20:24:45.967 に答える
1

こちらをご覧ください:http://api.jquery.com/attribute-equals-selector/

本質的には、次のように属性名を使用する必要があります。

$('input[data-policy="0"]').toggle();

お役に立てば幸いです。

于 2012-10-02T20:26:40.893 に答える
0

そのための正しいCSS(したがってjQuery)セレクターはです[attribute=value]。したがって、アイテムを選択するには、data-policy="0"を使用する必要があります[data-policy=0]

その他の使用可能なセレクターは、「has attribute」:[attribute]、「contains」:[attribute*=value]、「starts with」:、[attribute^=value]および「endswith」:[attribute$=value]です。

于 2012-10-02T20:25:56.747 に答える
0

IDは一意なので、IDを使用してみませんか?

var Policy = $('#Policy0:checked').val();
$('#Policy0').toggle(Policy===0);  
于 2012-10-02T20:29:47.993 に答える