在jquery中,触发点击具有最高'rel'属性值的链接

时间:2012-02-01 19:47:20

标签: javascript jquery

我有:

<a rel="9">Link 1</a>
<a rel="6">Link 2</a>
<a rel="3">Link 3</a>
<a rel="21">Link 4</a>

我想触发点击具有最高'rel'值的链接。写这个最有效的方法是什么?

3 个答案:

答案 0 :(得分:2)

试试这个。

var max = 0, index = 0;
$('a[rel]').each(function(i){
   if(parseInt($(this).attr('rel'), 10) > max){
      max = parseInt($(this).attr('rel'), 10);
      index = i;
   }
}).eq(index).trigger('click');

<强> Demo

答案 1 :(得分:1)

var maximum = null;

$('a[rel]').each(function() {
  var value = parseInt($(this).attr('rel'));
  maximum = (value > maximum) ? value : maximum;
});

$('a[rel="' + maximum + '"]').click();

答案 2 :(得分:1)

使用半着名的map-array-apply技巧:

修改HTML:

<a href="#" data-index="3">link 1</a>
<!-- et cetera -->

JS:

var tarr = $('a').map(function() {
    return $(this).data('index');
}).toArray();
alert( Math.max.apply(Math,tarr) );

http://jsfiddle.net/mblase75/nsBYS/

顺便说一句:触发单击超链接将触发与click事件关联的任何JavaScript,但不会加载超链接。这是一项安全功能,you have to circumvent it by extracting the href attribute。不确定这是否是你的意图(因为你的示例代码没有href属性)。