Подтвердить что ты не робот

Селектор jquery: идентификатор начинается с чего-то (ключевое слово "section" )

Я хочу настроить таргетинг на все div, у которых есть идентификатор, начинающийся с "section"; для каждого из этих divs я хочу показать дочерние divs ввода типа, которые начинаются с "pre".

    //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>
4b9b3361

Ответ 1

Вместо поиска частичного идентификатора, возможно, вам следует добавить классы "section" и "pre" в divs? Затем вы можете выполнить поиск по

groups = $('div.section div.pre');

То, что вы делаете, это, по сути, поиск на основе классов, и это будет подходящий механизм.

Ответ 2

Это будет работать как селектор:

$('[id^=section] > [id^=pre]')

Но я не думаю, что вы можете изменить атрибут type для входных элементов. Вероятно, вы просто хотите установить "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()

Ответ 3

groups = $('[id^=section]');    

$.each(groups, function(key, group) {
    inputs = $(group).children('[id^=pre]'); 
});