【问题标题】:How to select this child div element for showing/hiding with jQuery?如何选择此子 div 元素以使用 jQuery 显示/隐藏?
【发布时间】:2014-10-17 07:34:33
【问题描述】:

当我单击标记为“杂志引文”的复选框时,我希望具有“boat_prize_award_radio_buttons”类的 div 能够根据复选框是否被选中来显示/隐藏。如何使这项工作正常进行?

这是我当前的咖啡脚本/jQuery 代码:

$(document).ready ->
  $(".benefit_flag").change ->
    selected_obj = $(this).parent('div')
    if $(this).is(":checked")
      selected_obj.find('boat_prize_award_radio_buttons').show()
    else
      selected_obj.find('boat_prize_award_radio_buttons').hide()




<div class='outcome'>
  <ul>
    <li>etc.</li>
    <li>etc.</li>
    <li>etc.:</li>
    <fieldset class="inputs"><ol><li class="boolean input optional" id="person_magazines_attributes_12_benefit_flag_input"><input name="person[publications_attributes][12][benefit_flag]" type="hidden" value="0" /><label class="" for="person_magazines_attributes_12_benefit_flag"><input class="benefit_flag" id="person_magazines_attributes_12_benefit_flag" name="person[publications_attributes][12][benefit_flag]" type="checkbox" value="1" />Magazine citation</label>

    </li>
    <li class="radio input optional" id="person_magazines_attributes_12_citation_status_input"><fieldset class="choices"><ol class="choices-group"><li class="choice"><label for="person_magazines_attributes_12_citation_status_magic_was_cited"><input id="person_magazines_attributes_12_citation_status_magic_was_cited" name="person[publications_attributes][12][citation_status]" type="radio" value="Magazine was mentioned" />Magazine was mentioned</label></li>
    <li class="choice"><label for="person_magazines_attributes_12_citation_status_magic_was_not_cited_but_should_have_been"><input id="person_magazines_attributes_12_citation_status_magic_was_not_cited_but_should_have_been" name="person[publications_attributes][12][citation_status]" type="radio" value="Magazine was not mentioned" />Magazine was not mentioned</label></li></ol></fieldset>

    </li>
    </ol></fieldset>
    <div class='boat_prize_award_radio_buttons'>
      <p>My pilot fund award contributed to this outcome</p>
      <li class="radio input optional" id="person_magazines_attributes_12_boat_prize_award_contributed_input"><fieldset class="choices"><ol class="choices-group"><li class="choice"><label for="person_magazines_attributes_12_boat_prize_award_contributed_yes"><input id="person_magazines_attributes_12_boat_prize_award_contributed_yes" name="person[publications_attributes][12][boat_prize_award_contributed]" type="radio" value="Yes" />Yes</label></li>
      <li class="choice"><label for="person_magazines_attributes_12_boat_prize_award_contributed_no"><input id="person_magazines_attributes_12_boat_prize_award_contributed_no" name="person[publications_attributes][12][boat_prize_award_contributed]" type="radio" value="No" />No</label></li></ol></fieldset>

      </li>
    </div>
    </ul>
</div>

【问题讨论】:

    标签: javascript jquery html coffeescript


    【解决方案1】:

    您可以使用 jQuery parents() 方法。 jQuery 的 parent() 方法仅在 DOM 树上向上移动单层。 此外,在 jQuery 的 find() 方法中将类名作为参数时,您需要将 .在类名之前。

    这是你想要的脚本:

    $(document).ready ->  
      $(".benefit_flag").change ->
        selected_obj = $(this).parents('div')
        if $(this).is(":checked")
          selected_obj.find('.boat_prize_award_radio_buttons').show()
        else
          selected_obj.find('.boat_prize_award_radio_buttons').hide()
    

    此外,根据您的要求,您应该通过将代码放入 $(document).ready 函数中或使用 display:none来隐藏页面加载时的单选按钮> CSS 的属性

    【讨论】:

    • 谢谢,这个答案的主要问题是我想要一个单亲 - 选择多个双亲意味着我要关闭所有具有“.boat_prize_award_radio_buttons”类的孩子。当我用 $(this).parent('div') 尝试它时,它没有关闭任何东西。
    • 我刚刚想通了:selected_obj = $(this).parents('div').filter('div.outcome') 会给我我需要的,谢谢
    • 你也可以使用 selected_obj = $(this).parents('.outcome')
    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2010-11-27
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多