我希望能够更改页面上所有锚点的属性。但我不知道如何遍历所有这些。
答案 0 :(得分:23)
答案 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.
});