我正在尝试使用数组
设置锚点的子集HTML& CSS:
<div>
<a href="#1">one</a>
<a href="#2">two</a>
<a href="#3">three</a>
<a href="#4">four</a>
<a href="#5">five</a>
<a href="#6">six</a>
<a href="#7">seven</a>
</div>
.hilight {
background: #f00;
}
e.g。如何将“hilight”类添加到主播2,5和&amp; 6 ...
测试了这个:
$("a[href='#5']").addClass('hilite');
我用$ .each()尝试了以下操作,但这不起作用。我想我正在迭代每个锚3次,但我没想到没有输出!
var arr = ["#2", "#5", "#6"];
$.each(arr, function(index, value) {
$("a[href=value]").addClass('hilite');'
});
请有人指出我正确的方向:)
答案 0 :(得分:4)
您的代码无效,因为$("a[href=value]")
不存在。
您要使用$("a[href='"+value+"']")
代替,其中value将被“变量”的值“替换”。
这是一个修复:
var arr = ["#2", "#5", "#6"];
$.each(arr, function(index, value) {
$("a[href='"+value+"']").addClass('hilite');
});
答案 1 :(得分:4)
根本不需要每个,你可以使用逗号分隔的所有选择器。
$("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite');
答案 2 :(得分:2)
如果你没有它们的TON,它可能更简单......
$("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite');
做同样的事情,但动态更多(约翰)......
var arr = ["#2", "#5", "#6"];
$("a[href='"+arr.join("'], a[href='")+"']").addClass('hilite');
这假定arr
总是至少有一个元素。
答案 3 :(得分:0)
jQuery addClass()方法可以创建一个函数来确定要添加的类。您可以使用它来确定元素是否是需要添加类的元素。这比为数组中的每个值运行选择器$("a[href='"+value+"']")
更有效,因为它只会遍历DOM一次而不是n(数组的大小)次。
var arr = ["#2", "#5", "#6"];
$("a").addClass(function () {
if (arr.indexOf($(this).attr("href")) != -1) {
return "hilight";
}
});
这是一个演示 http://jsfiddle.net/VqLnt/3/
我还要注意,您的CSS类名为hilight
,但您尝试在JavaScript中添加的类是hilite
。这可能是一个错字,但只是想让你知道。