隐藏一个复选框所在的p标签

时间:2012-10-03 18:00:32

标签: jquery

如何隐藏我的复选框所在的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();
}}

3 个答案:

答案 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