0

我有以下代码:

<div>
<label for="fsc_name1">Name:<span class="required"> *</span></label>
</div>

<div>
<input style="text-align:left; margin:0;" type="text" id="fsc_name1" name="fsc_name" value=""  size="60">
</div>

这是联系表格的一部分,如果选择了特定元素,我需要能够隐藏其中的一些元素。所以可以说我想隐藏上面的两个 div。没有 id 或 class,我不能给他们任何。我所拥有的只是唯一值 "for="fsc_name1"" ( <label>) 和 "id="fsc_name1"" ( <input>)

4

6 回答 6

6

简单的!只需使用 jQuery parent()。请参阅文档:http ://api.jquery.com/parent/

$('#fsc_name1').parent().hide()
$('label[for="fsc_name1"]').parent().hide()

您还可以组合选择器以节省空间。请参阅文档:http ://api.jquery.com/multiple-selector/

$('#fsc_name1, label[for="fsc_name1"]').parent().hide()
于 2013-05-16T08:45:54.883 回答
5

你可以混合使用属性选择器id 选择器.parent()来解决这个问题

$('label[for="fsc_name1"]').parent().hide()
$('#fsc_name1').parent().hide()
于 2013-05-16T08:46:40.240 回答
1

首先,id="fsc_name1" 一个类选择器,你可以通过

$('#fsc_name1').parent().hide();

但是,我认为对于你的场景,你想要这样的东西......

// This can be an array of elements
var selector = 'fsc_name1';
$('label[for=' + selector + ']').parent().hide();
$('#' + selector).parent().hide();
于 2013-05-16T08:48:10.650 回答
1

没有 jQuery 版本:

document.querySelector('[for=fsc_name1]').parentNode.style.display = 'none';
document.querySelector('#fsc_name1').parentNode.style.display = 'none';
于 2013-05-16T08:49:37.733 回答
0

请查看http://jsfiddle.net/2dJAN/31/

$('#fsc_name1').closest('div').css('border','1px solid red')
$('#fsc_name1').closest('div').prev('div').css('border','1px solid green')

注意:正是我无法理解您的问题。所以我在示例中将边框添加到 div 中。如果你想隐藏,而不是.css你添加.hide()将隐藏 div。

如果您有任何问题,请告诉我。

于 2013-05-16T08:51:02.930 回答
0

使用.parent()方法。

$('#fsc_name1').parent().hide();
$('label[for="fsc_name1"]').parent().hide();
于 2013-05-16T08:53:44.543 回答