Методу jQuery attr не удалось добавить атрибут - PullRequest
1 голос
/ 29 ноября 2009

В определенных условиях я хочу открыть ссылки в том же окне, в то время как в других я хочу открыть их в новом окне. У меня есть следующий код JQuery:

if (internal) {
    jQuery(".main a").removeAttr('target');
} else {
    jQuery(".main a").attr('target', '_blank');
}

У меня есть два <a>, содержащиеся в "главном" div. Один находится прямо под div, а другой похоронен под парой sub-div. При запуске он добавляет только пустую цель к первому тегу <a>. Однако, когда я устанавливаю точку останова через Firebug и прохожу через нее, все работает нормально. Есть ли причина, по которой он не будет работать на полной скорости? Какой обходной путь?

Ответы [ 2 ]

1 голос
/ 29 ноября 2009

Выполнен ли конкретный код во время события onload? В jQuery вы обычно используете $(document).ready() для этого. Э.Г.

$(document).ready(function() {
    // Do stuff onload.
});

В противном случае оно будет выполнено немедленно, пока дерево DOM HTML еще не полностью сформировано и не инициализировано.

0 голосов
/ 29 ноября 2009

Попробуйте использовать each() для перехода по элементам A:

jQuery(".main a").each(function() {
  $(this).attr('target', '_blank');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...