0

如何隐藏我的复选框所在的 ap 标签?

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

3 回答 3

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();
}
于 2012-10-03T18:01:44.557 回答
1

该语句value == 184将评估为真或假,因此您可以直接使用该语句来设置真/假,而不是编写两次相同的代码并过滤它的触发时间:

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

括号也比伪选择器更可取,并且prop是设置检查状态的正确方法。

于 2012-10-03T18:05:18.473 回答
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
于 2012-10-03T18:01:35.177 回答