JQuery: добавить класс, если ссылка имеет целевой пробел?

Эй, ребята, разве это не должно работать?

//Add class if target blank
    $('.post .entry a').each(function() {
        if ( $(this).attr('target') == '_blank') ) {
            $(this).addClass('web');
        };
    });

что-то не так с этим?

5 ответов

Решение

Пожалуйста, попробуй

//Add class if target blank
$('.post .entry a[target="_blank"]').addClass('web');

У вас есть дополнительный ), Просто удалите это, и это нормально:)

$('.post .entry a').each(function() {
    if ( $(this).attr('target') == '_blank') ) {
---------------------------------------------^
        $(this).addClass('web');
    };
});

Все в порядке. Но это должно быть внутри документа.

$(document).ready(function(){
   $('.post .entry a').each(function() {
        if ( $(this).attr('target') == '_blank') ) {
            $(this).addClass('web');
        };
    });
});

Надеюсь это поможет. ура

У вас есть экстра ) в заявлении if. Сними это, и ты будешь в порядке:

$('.post .entry a').each(function() {
    if ( $(this).attr('target') == '_blank' ) {
        $(this).addClass('web');
    };
});

Более короткий способ сделать это будет:

$('.post .entry a[target="_blank"]').each(function() {
    $(this).addClass('web');
});

Использует меньше кода тоже.

На самом деле ответ @ariel гласит лучший способ сделать это.

Я нашел успех со следующим:

$('.post .entry a[href="_blank"]').addClass('web');
Другие вопросы по тегам