2

我有一个按钮,用于在显示是/否“政策内”div 之间切换

<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();不起作用,我没有收到错误,但它不会隐藏具有属性的 divdata=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]和 "ends with": [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 回答