javascript - 如何使用 jQuery 选择这个子 div 元素来显示/隐藏?

标签 javascript jquery html coffeescript

当我单击标有“杂志引文”的复选框时,我希望具有“boat_prize_award_radio_buttons”类的 div 能够显示/隐藏,具体取决于是否选中该复选框。我如何才能使其正常工作?

这是我当前的 CoffeeScript/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>

最佳答案

您可以使用 jQueryparents() 方法。 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 的属性

关于javascript - 如何使用 jQuery 选择这个子 div 元素来显示/隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415368/

相关文章:

javascript - 使用包含参数的函数更改 onclick 操作

javascript - 无法使用 jQuery 更改 Kendo 下拉列表的值

html - 从无序列表 <ul> 中删除 "bullets"

jquery select size属性改变

javascript - 我如何在 ReactJS 中包含 `<img>`?

javascript - 记住切换状态并避免在没有服务器端代码的情况下重新加载页面时出现闪烁

javascript - 如何列出元素,包括值(value)、名称、面额?

javascript - 覆盖 Typescript 声明类型以在 DOM 的 Event 类上声明静态方法

jquery - CSS 媒体查询与 Jquery 响应解决方案?

javascript - 显示/隐藏搜索 Div Angular UI