jQuery:我如何遍历所有'a'元素?

时间:2010-08-31 15:34:34

标签: jquery

我希望能够更改页面上所有锚点的属性。但我不知道如何遍历所有这些。

5 个答案:

答案 0 :(得分:23)

使用每个:

http://api.jquery.com/each/

$("a").each(function(){
    //do something with the element here.
});

答案 1 :(得分:10)

您可以将.attr()与函数一起使用来更改特定属性,例如:

$("a").attr("href", function(i, oldHref) {
  return oldHref + "#hash";
});

这比.each()便宜,因为你没有在每次迭代中创建一个额外的jQuery对象,你正在访问DOM元素上的属性而不这样做。

答案 2 :(得分:6)

jQuery固有地提供了这种能力。

$('a').do_something();

do_something()发送到页面上的每个a。所以:

$('a').addClass('fresh'); // adds "fresh" class to every link.

如果您要执行的操作需要单独查看每个a的属性,请使用.each()

$('a').each( function(){
  var hasfoo = $(this).hasClass('foo'); // does it have foo class?
  var newclass = hasfoo ? 'bar' : 'baz'; 
  $(this).addClass(newclass); // conditionally add another class
});

答案 3 :(得分:3)

$('a').each(function(i){
    $(this).attr('href','xyz');
});

答案 4 :(得分:1)

您可以将jQuery .each()用于此目的:

$('a').each(function() {   
 // The $(this) jQuery object wraps an instance  
 // of an anchor element.  
});