问候,
这个新手需要澄清。考虑一下这个脚本......
$("h3").click(function(){
$(this).addClass("silver");
});
如果这是我页面中的一个h3 DOM元素,上面的脚本将适用于所有元素,对吗?
如果是这样,有没有办法“瞄准”特定的DOM元素(根据我的例子),而排除其他元素?我想知道链接选择器是否适用于这种情况,例如
$("h3 fieldset a").click(function(){
$(this).addClass("silver");
});
这是正确的方法吗?
感谢您的意见。
答案 0 :(得分:1)
如果这是我页面中的一个h3 DOM元素,上面的脚本将适用于所有元素,对吗?
是
如果是这样,有没有办法“瞄准”特定的DOM元素(根据我的例子),而排除其他元素?
是。有很多方法。查看jQuery selectors documentation,了解如何限制所选元素。
答案 1 :(得分:1)
这就是你如何去做的。
尝试以与在css中选择对象相同的方式来考虑选择器。
在应用选择器以保持jQuery zippy时,尽可能具体地说这是一个好主意。
基本规则是这个
$("h3 fieldset a").click(function(){
$(this).addClass("silver");
});
会在h3标签内的字段集中选择一个超链接...(不确定这是否是有效的html)
,而
$("h3, fieldset, a").click(function(){
$(this).addClass("silver");
});
将类银添加到h3的fieldset和超链接。
simples!
答案 2 :(得分:1)
要回答您的第一个问题,是的,$(“h3”)将适用于所有H3元素。
要缩小选择范围,您可以选择各种选项。在这里查看所有这些:jQuery Selectors。最好的选择是分配您感兴趣的元素作为ID。
<h3 id="firstSection">Headline!</h3>
然后您可以像这样访问它:
$("#firstSection")
如果您知道自己只想要第一个H3元素
,那么你可以做更快更脏的事情 $("h3:first")
答案 3 :(得分:1)
在元素上放置id
以选择单个元素。
<h3 id="make-silver">text</h3>
$("h3#make-silver").click(function(){
$(this).addClass("silver");
});
答案 4 :(得分:1)
是的,使用“h3”选择器会向页面上的所有h3标签添加点击事件。
你可以像你在第二个例子中那样链式选择器,但是你会在jQuery中产生一些额外的开销,因为它试图解析并搜索DOM以寻找匹配的元素。最好的选择是为您要定位的h3标记添加ID,并使用类似于以下内容的内容:
$("#h3Id").click(function(){
$(this).addClass("silver");
});
答案 5 :(得分:0)
你的问题不清楚。
您可能正在寻找:not()
选择器,或者您可能正在尝试按ID或类名过滤元素。
The documentation contains a complete list of selectors,附带示例。
答案 6 :(得分:0)
你可以为你想要定位的H3添加一个类。或者你可以选择一个包含你想要定位的H3的元素,然后使用.find()来获取H3
示例代码:
$('.classOnTargetH3').click(....);
OR
$('elementImediatlySouroundingH3').find('h3').click(....);
答案 7 :(得分:0)
你应该给h3上课:
所以你会选择这样的项目:$(“。reto”)。