2012-10-03 246 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將是設置選中狀態的正確方法。