2012-10-03 125 views
0

我如何隐藏我的复选框正在坐的p标签?隐藏p标签复选框位于

<p><input type="checkbox" name="qID5[]" class="required" value="232" id="checkbox" /> - Answered NO to question 4 </p> 

下面是一些jQuery的隐藏根据条件的复选框本身,但其实我是想隐藏整个页。我在下面的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

你想隐藏p标签的时候?任何按钮甚至点击? – balanv

+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(); 
} 
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 
1

声明value == 184将评估为真或假,所以不是编写相同的代码两次,过滤它明火时代,你可以直接使用的语句设置真/假:

var $radios = $('input[type="checkbox"][name="qID5[]"][value=232]'); 
$radios.prop('checked', (value == 184)).closest('p').toggle(value == 184); 

另外括号会比伪选择器更好,并且prop将是设置选中状态的正确方法。