1

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

var targetVal = ['1','2','4'];

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

<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 属性定位第 2、3 和 5 行。

 $(".link").each(function(index) {
       $(this).attr("rel", "group");
    });

如何根据数组制作上述脚本索引?

4

3 回答 3

1

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

var $links = $(".link");
$.each(targetVal, function(value) {
    $links.eq(value).attr("rel", "group");
});
于 2012-06-26T13:07:38.340 回答
1
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/

于 2012-06-26T13:09:48.397 回答
0

这将是更优化的,只评估一次链接集,并直接访问该列表而不是使用.eq()

var targetVal = [1, 2, 4];
var links = $('.link');
$.each(targetVal, function(i, n) {
    links[n].setAttribute('rel', 'group');
});

或者,在较新的浏览器上,并且没有 jQuery:

var targetVal = [1, 2, 4];
var links = document.querySelectorAll('.link');
while (targetVal.length) {
    links[targetVal.pop()].setAttribute('rel', 'group');
}
于 2012-06-26T13:22:09.773 回答