jquery选择器:ID以某物开头(关键字"section")



我想针对所有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]'); 
});

最新更新