首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jquery通过数组中的值为元素建立索引并将属性应用于元素

使用Jquery通过数组中的值为元素建立索引并将属性应用于元素
EN

Stack Overflow用户
提问于 2012-06-26 21:04:00
回答 3查看 62关注 0票数 1

我想添加一个与数组匹配的元素的rel属性,例如,数组是:

代码语言:javascript
运行
复制
var targetVal = ['1','2','4'];

和5个具有相同类的元素:

代码语言:javascript
运行
复制
<a class="link" href="1.html">
<a class="link" href="2.html">
<a class="link" href="3.html">
<a class="link" href="4.html">
<a class="link" href="5.html">

我想以具有rel属性的第二、第三和第五行为目标。

代码语言:javascript
运行
复制
 $(".link").each(function(index) {
       $(this).attr("rel", "group");
    });

如何才能使上面的脚本基于数组进行索引?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-26 21:09:48

代码语言:javascript
运行
复制
var targetVal = ['1','2','4'];

$.each(targetVal, function(index, val) {
       console.log(val);
       $('.link').eq(val).attr("rel", "group");
});

jsFiddle示例http://jsfiddle.net/roXon/T7zR8/

票数 1
EN

Stack Overflow用户

发布于 2012-06-26 21:07:38

您可以使用$.each()遍历数组,使用eq()获取特定索引处的链接:

代码语言:javascript
运行
复制
var $links = $(".link");
$.each(targetVal, function(value) {
    $links.eq(value).attr("rel", "group");
});
票数 1
EN

Stack Overflow用户

发布于 2012-06-26 21:22:10

这样会更好,只评估一次链接集,然后直接访问该列表,而不是使用.eq()

代码语言:javascript
运行
复制
var targetVal = [1, 2, 4];
var links = $('.link');
$.each(targetVal, function(i, n) {
    links[n].setAttribute('rel', 'group');
});

或者,在较新的浏览器上,不使用jQuery:

代码语言:javascript
运行
复制
var targetVal = [1, 2, 4];
var links = document.querySelectorAll('.link');
while (targetVal.length) {
    links[targetVal.pop()].setAttribute('rel', 'group');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11207920

复制
相关文章

相似问题

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