JQuery Hide Label в Div по ID

У меня есть несколько div, которые при создании динамически добавляют атрибут "fund-id", так как на моей странице их может быть около 50. Я пытаюсь динамически скрывать и отображать элементы в этом div на основе идентификатора фонда и идентификатора метки в div, который будет HTML;

<div class="qtyDD" id="divqtyDD" style="display: none;" fund-id="1">
    <a href="#" onclick="javascript:changeQtyType('D');"><label id="qtyTypeD" class="lblqtyDD" value="D">Dollars</label></a>
    <a href="#" onclick="javascript:changeQtyType('Shrs');"><label id="qtyTypeShrs" class="lblqtyDD" value="Shrs">Shares</label></a>
    <a href="#" onclick="javascript:changeQtyType('Full');"><label id="qtyTypeFull" class="lblqtyDD" value="Full">Full</label></a>
    <a href="#" onclick="javascript:changeQtyType('Net');"><label id="qtyTypeNet" class="lblqtyDD" value="Net">Net Redemptions</label></a>
</div>

в зависимости от выбора флажка я хочу скрыть (); последние 3 элемента или показать их все. что-то вроде;

var fundID = fundID (taken from the function call, this is working fine)
if(this.checked){
   $('#divqtyDD[fund-id="' + fundID + '"]').next('#qtyTypeShrs').hide();
}else{
   $('#divqtyDD[fund-id="' + fundID + '"]').next('#qtyTypeShrs').show();
}

метки просто не скрываются при обращении к следующей функциональности. любая помощь приветствуется.


person Nick G    schedule 25.02.2014    source источник
comment
Элемент ids должен быть уникальным на странице. Вместо этого используйте классы и посмотрите, к чему это приведет.   -  person Jason P    schedule 25.02.2014
comment
Вам также нужно будет использовать .find() вместо .next(). См. Документацию jquery о том, что делает каждая функция.   -  person Jason P    schedule 25.02.2014
comment
эй, Джейсон, это хороший момент, я на самом деле возился с именами классов, прежде чем опубликовать это, я не редактировал / не обновлял его. я попробую использовать find () для элементов и посмотрю, работает ли это   -  person Nick G    schedule 25.02.2014


Ответы (1)


пытаться

$("#divqtyDD").children("#qtyTypeD").hide();

или вы можете напрямую использовать

$("#qtyTypeD").hide();

поскольку идентификатор уникален.

person Anoop Joshi    schedule 25.02.2014
comment
Поскольку они являются идентификаторами, разве это не избыточно? $("#qtyTypeD").hide(); делает то же самое. - person Gone Coding; 25.02.2014
comment
единственная причина, по которой я не буду ссылаться на них напрямую, и я делаю это через родительский div и fund-id, состоит в том, что у меня может быть десять точно таких же div с идентификатором фонда = 1, идентификатором фонда = 2, поэтому я хочу ссылаться только на #qtyTypeD внутри ‹div› с соответствующим идентификатором фонда - person Nick G; 25.02.2014