Я хочу иметь возможность изменять все свойства привязки на странице. Но я не знаю, как пройти через все из них.
JQuery: как мне перебирать все элементы 'a'?
Ответ 1
использовать каждый:
$("a").each(function(){
//do something with the element here.
});
Ответ 2
Вы можете использовать .attr()
с функцией для изменения определенного свойства, например:
$("a").attr("href", function(i, oldHref) {
return oldHref + "#hash";
});
Это дешевле .each()
, так как вы не создаете дополнительный объект jQuery внутри каждой итерации, вы получаете доступ к свойствам на элемент DOM, не делая этого.
Ответ 3
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
});
Ответ 4
$('a').each(function(i){
$(this).attr('href','xyz');
});
Ответ 5
Вы можете использовать jQuery .each()
для этой цели:
$('a').each(function() {
// The $(this) jQuery object wraps an instance
// of an anchor element.
});