【发布时间】:2015-07-01 23:43:21
【问题描述】:
假设我们有两个带有display:none 样式属性的div,如下所示:
<div id="dv_1" style="display:none;">
DIV - 1
<br />
<input type="radio" name="dv_1_radio_gender" value="male" checked="checked" /> Male
<input type="radio" name="dv_1_radio_gender" value="female" /> Female
<input type="hidden" name="dv_1_radio_gender" value="male" />
</div>
<div id="dv_2" style="display:none;">
DIV - 2
<br />
<input type="radio" name="dv_2_radio_gender" value="male" checked="checked" /> Male
<input type="radio" name="dv_2_radio_gender" value="female" /> Female
<input type="hidden" name="dv_2_radio_gender" value="male" />
</div>
如您所见,每个div 包含两个单选按钮和一个隐藏的input 字段。
如果我们尝试像这样为隐藏字段设置新值:
$('input:hidden[name="dv_1_radio_gender"]').val('female');
选择器似乎在隐藏的 (display: none) div 中获取所有具有相同名称的元素,并将值设置为 'female'。
如果我们先更改div:
$(div).show();
当一切正常。
所以,这是我的问题:为什么选择器会在隐藏的div 中获取所有匹配的元素?语法$('input:hidden[name="xxx"]') 不是意味着找到input 这是hidden 类型吗?
【问题讨论】:
-
我不知道可能是什么问题,但我检查了您的代码,它的工作方式与您希望的一样..