attr не определен - PullRequest
       0

attr не определен

2 голосов
/ 27 июля 2011

Следующий код не работает, потому что attr не определен:

$("#foo a[href]").each(function()
{
    this.attr("href", "www.google.com");
});

Но этот код работает:

$("#foo a[href]").each(function()
{
    this.href = "www.google.com";
});

Почему ??

Ответы [ 7 ]

10 голосов
/ 27 июля 2011

Вам нужно обернуть this ... $(this)

attr - это метод объекта jQuery, href - это свойство узла элемента

3 голосов
/ 27 июля 2011

Ссылка this в вашей функции является ссылкой на элемент DOM. Ссылка не является объектом jQuery.

2 голосов
/ 27 июля 2011

Поскольку this внутри каждого элемента относится к самому элементу DOM, а не к его версии jQuery, а метод attr определяется только для объекта jQuery.

Итак, чтобы использовать метод attr, вам нужно обернуть элемент DOM в объект jQuery:

$("#foo a[href]").each(function()
{
    $(this).attr("href", "www.google.com");
});
1 голос
/ 27 июля 2011

попробуй .prop ()

this.prop("href", "www.google.com");
0 голосов
/ 27 июля 2011

Потому что this не является объектом jQuery.

Попробуйте:

$("#foo a[href]").each(function() {
    $(this).attr("href", "www.google.com");
});
0 голосов
/ 27 июля 2011

Вы имели в виду это вместо этого?

$(this).attr("href","www.google.com");?

0 голосов
/ 27 июля 2011
$("#foo a[href]").each(function()
{
    $(this).attr("href", "www.google.com");
});

Вам нужен $ ()

...