Добавить код ко всем ссылкам в div - PullRequest
0 голосов
/ 23 декабря 2011

Я хочу добавить код после всех ссылок с расширением mp3 в конкретном разделе.

Вот код, который я пытаюсь:

$("#Temp_Div").find('a[href$="mp3"]').append('<a class="mp3play" href="javascript:Play('+ $(this).href +');"></a>');

Проблема в $(this).href Он не возвращает ссылку. возвращается undefined

Ответы [ 5 ]

3 голосов
/ 23 декабря 2011

Если this - это DOM-объект, который вы должны просто использовать:

this.href

(более подробный, менее эффективный) способ записи в jQuery:

$(this).attr('href');

В любом случае вызов .append() не будет работать так, как написано, потому что this на самом деле не устанавливается вообще.

Вам необходимо вызвать .each() с соответствующими элементами с функцией обратного вызова,Затем jQuery обеспечит, чтобы this был установлен для текущего объекта DOM.

Пример:

$("#Temp_Div").find('a[href$="mp3"]').each(function() {
    $(this).append('<a class="mp3play" href="javascript:Play('+ this.href +');" />');
});
1 голос
/ 23 декабря 2011

Это должно работать для вас:

$("#Temp_Div").find('a[href$="mp3"]').each(function() {
    $(this).after('<a class="mp3play" href="javascript:Play('+ this.href +');"></a>');
});

this будет ссылаться на тег. (Вам не нужно оборачивать его в объект jquery, чтобы получить href)

Я думаю, вы также хотите использовать после вместо append , так как это добавит ссылку после другой ссылки, а не внутри нее.

Пример

1 голос
/ 23 декабря 2011

Вместо этого попробуйте $ (this) .attr ('href'), это должно сработать.

1 голос
/ 23 декабря 2011

href является атрибутом, поэтому вы должны использовать функцию attr, например:

$("#Temp_Div").find('a[href$="mp3"]').each(function() { $(this).append('<a class="mp3play" href="javascript:Play('+ $(this).attr('href') +');"></a>'); });

Вы можете просмотреть документацию

0 голосов
/ 23 декабря 2011

Попробуйте this.href, если элемент привязан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...