当我单击标有“杂志引文”的复选框时,我希望具有“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/