考虑以下简单的HTML:
<div id="navcontainer">
<a href="#"><img alt="" src="Img1.jpg" /></a>
<a href="#"><img alt="" src="Img2.jpg" /></a>
<a href="#"><img alt="" src="Img3.jpg" /></a>
<a href="#"><img alt="" src="Img4.jpg" /></a>
<a href="#"><img alt="" src="Img5.jpg" /></a>
</div>
为了论证,让我们说它只是一个包含许多DIV和A的大页面的一小部分。
我想要做的是隐藏标签及其中的图像。如果我这样做,它可以工作:
$('a').hide();
但就像我说的那样,页面上有很多链接,所以我想要非常具体。基本上,我只想要<div>
内的链接与“navcontainer”类。因此,根据我在网络上看到的内容,它应该是以下两种格式之一。第二个对我来说很完美。但两件都不适合我。
$('div.navcontainer a').hide();
$('div.navcontainer > a').hide();
我一定是想念一些愚蠢的事。有人可以告诉我吗?
答案 0 :(得分:4)
您混合了类和Id选择器
$('#navcontainer a').hide();
$('#navcontainer > a').hide();
答案 1 :(得分:2)
选择器中的点前缀用于类,但实际上你有一个ID,所以你应该使用一个哈希前缀,例如:
$('#navcontainer > a').hide();
将div
前缀放在选择器上会好得多不 - 没有它会更快。
如果您使用纯粹基于ID的选择器,那么jQuery可以使用本机document.getElementById()
调用。在实践中,这可能是最优的:
$('#navcontainer').children('a').hide();
答案 2 :(得分:2)
$('div#navcontainer a').hide();
.
适用于类,您需要#
来获取ID。
由于ID(应该)是唯一的,因此您不需要div
前缀。
$('#navcontainer a').hide();
答案 3 :(得分:1)
您需要$('div#navcontainer')
,您的代码正在寻找navcontainer类而非id。
答案 4 :(得分:1)
如果你的div有类navcontainer,请使用
$(".navcontainer a").hide()
如果你有一个id为navcontainer的div。使用
$("#navcontainer a").hide()
答案 5 :(得分:0)
根据你的html,你需要使用id选择器 -
$('div#navcontainer > a').hide();
答案 6 :(得分:0)
$('div#navcontainer a').hide();
$('div#navcontainer > a').hide();