我想针对所有div的id以"section"开头;对于每一个div,我想显示以"pre"开头的input类型的子div。
//groups = $('div [id^=section]');
groups = $('[id^=section]');
$.each(groups, function(key, group) {
alert(key + ': ' + group);
//inputs = group.('[id^=pre]');
});
<div id="section-A1">
<input id="preBeginDtl" name="BeginDtlFields" value="" type="hidden">
<input id="other" name="name2" value="" type="input">
<input id="preGroup" name="GRP" value="AA" type="hidden">
</div>
这将作为选择器:
$('[id^=section] > [id^=pre]')
但是,我不认为你可以改变输入元素的类型属性。你可能只是想将"pre"输入设置为type="text"(而不是type="hidden"),并将它们的css display属性设置为none。然后使用jQuery show()来取消隐藏。
<div id="section-A1">
<input id="preBeginDtl" name="BeginDtlFields" value="" type="text" style="display:none">
<input id="other" name="name2" value="" type="text">
<input id="preGroup" name="GRP" value="AA" type="text" style="display:none">
</div>
和
$('[id^=section] > [id^=pre]').show()
而不是寻找部分id,也许你应该添加类"section"one_answers"pre"到div ?然后你可以在
上搜索groups = $('div.section div.pre');
你所做的本质上是一个基于类的查找,这将是适当的机制。
groups = $('[id^=section]');
$.each(groups, function(key, group) {
inputs = $(group).children('[id^=pre]');
});