我有:
<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'值的链接。写这个最有效的方法是什么?
答案 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属性)。