我想在特定div中使用mp3扩展名的所有链接后附加代码。
以下是我正在尝试的代码:
$("#Temp_Div").find('a[href$="mp3"]').append('<a class="mp3play" href="javascript:Play('+ $(this).href +');"></a>');
问题是$(this).href
它不会返回链接的href。它返回undefined
答案 0 :(得分:3)
如果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 :(得分:1)
href是一个属性,因此您必须使用attr
函数,例如:
$("#Temp_Div").find('a[href$="mp3"]').each(function() { $(this).append('<a class="mp3play" href="javascript:Play('+ $(this).attr('href') +');"></a>'); });
您可以查看documentation
答案 2 :(得分:1)
这应该适合你:
$("#Temp_Div").find('a[href$="mp3"]').each(function() {
$(this).after('<a class="mp3play" href="javascript:Play('+ this.href +');"></a>');
});
this
将引用a标记。 (您不需要将其包装在jquery对象中以获取href)
答案 3 :(得分:1)
尝试使用$(this).attr('href'),这应该可行。
答案 4 :(得分:0)
如果元素是锚
,请尝试this.href