如何隐藏我的复选框所在的p标签?
<p><input type="checkbox" name="qID5[]" class="required" value="232" id="checkbox" /> - Answered NO to question 4 </p>
这是一些jquery根据条件隐藏复选框本身但我实际上想要隐藏整个p。我在下面的jQuery中如何更改隐藏p及其中的所有内容而不仅仅是复选框?
if(value == 184){
var $radios = $('input:checkbox[name=qID5[]]');
$radios.filter('[value=232]').attr('checked', true);
$radios.filter('[value=232]').show();
}else{
var $radios = $('input:checkbox[name=qID5[]]');
$radios.filter('[value=232]').attr('checked', false);
$radios.filter('[value=232]').hide();
}}
答案 0 :(得分:1)
使用.parent
获取封闭的<p>
代码。见下文。
if(value == 184){
var $radios = $('input:checkbox[name=qID5[]]');
$radios.filter('[value=232]').attr('checked', true);
$radios.filter('[value=232]').parent().show();
}else{
var $radios = $('input:checkbox[name=qID5[]]');
$radios.filter('[value=232]').attr('checked', false);
$radios.filter('[value=232]').parent().hide();
}
答案 1 :(得分:1)
语句value == 184
将评估为true或false,因此您可以直接使用该语句来设置true / false,而不是编写相同的代码两次并过滤它们:
var $radios = $('input[type="checkbox"][name="qID5[]"][value=232]');
$radios.prop('checked', (value == 184)).closest('p').toggle(value == 184);
括号也优于伪选择器,prop
是设置检查状态的正确方法。
答案 2 :(得分:0)
你可以使用最近的('p')选择器来搜索最近的p元素,在这种情况下是直接父元素。
$(this).closest('p').hide();
或者
$radios.filter('[value=232]').closest('p').hide(); // To Hide
$radios.filter('[value=232]').closest('p').show(); // To Show
或
$radios.filter('[value=232]').parent('p').hide(); // To Hide
$radios.filter('[value=232]').parent('p').show(); // To Show