首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用$.each to addClass to elements

使用$.each to addClass to elements
EN

Stack Overflow用户
提问于 2011-09-28 00:08:26
回答 4查看 159关注 0票数 0

我正在尝试使用数组设置锚点子集的样式

HTML和CSS:

代码语言:javascript
复制
<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;
}

例如,我如何将“hilight”类添加到锚点2、5和6……

测试过后:

代码语言:javascript
复制
$("a[href='#5']").addClass('hilite');

我尝试使用$.each()执行以下操作,但不起作用。我想我在每个锚点上迭代了3次,但我没想到会没有输出!

代码语言:javascript
复制
var arr = ["#2", "#5", "#6"];   
$.each(arr, function(index, value) {
    $("a[href=value]").addClass('hilite');'
});

谁能给我指个方向:)

EN

回答 4

Stack Overflow用户

发布于 2011-09-28 00:10:02

您的代码无法工作,因为$("a[href=value]")不存在。

您希望使用$("a[href='"+value+"']"),其中value将被变量value的值“替换”。

这里有个解决办法:

代码语言:javascript
复制
var arr = ["#2", "#5", "#6"];   
$.each(arr, function(index, value) {
    $("a[href='"+value+"']").addClass('hilite');
});
票数 4
EN

Stack Overflow用户

发布于 2011-09-28 00:13:36

您根本不需要每个选择器,您可以只使用逗号分隔的所有选择器。

代码语言:javascript
复制
$("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite');
票数 4
EN

Stack Overflow用户

发布于 2011-09-28 00:15:30

如果你没有一大堆这样的东西,可能更简单的做法是...

代码语言:javascript
复制
$("a[href='#2'], a[href='#5'], a[href='#6']").addClass('hilite');

做同样的事情,但更动态地(对于John)...

代码语言:javascript
复制
var arr = ["#2", "#5", "#6"]; 
$("a[href='"+arr.join("'], a[href='")+"']").addClass('hilite');

这假设arr始终至少有一个元素。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7572266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档