将某些代码附加到div中的所有链接

我想在特定div中的所有带有mp3扩展名的链接之后附加代码。将某些代码附加到div中的所有链接

这里是我想要的代码:

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

问题是$(this).href它不会返回链接的href。它返回undefined

回答:

如果this是你应该使用DOM对象:

this.href 

的(更详细的,低效率)的jQuery写这将是这样:

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

在任何情况下,由于this实际上没有被设置,所以.append()呼叫将不会按照书面方式工作。

您需要用带回调函数的匹配元素调用.each()。然后jQuery将确保this被设置为当前的DOM对象。

像这样:

$("#Temp_Div").find('a[href$="mp3"]').each(function() { 

$(this).append('<a class="mp3play" href="javascript:Play('+ this.href +');" />');

});

回答:

href是属性,所以你必须使用attr功能,例如:

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

您可以查看documentation

回答:

这应该为你工作:

$("#Temp_Div").find('a[href$="mp3"]').each(function() { 

$(this).after('<a class="mp3play" href="javascript:Play('+ this.href +');"></a>');

});

this将引用一个标签。 (你不需要包装在一个jQuery对象得到HREF)

我想你也想用after而非append,因为这会在其他环节之后,而不是在它里面添加链接。

Example

回答:

尝试$(本).attr( 'href' 属性)来代替,这应该工作。

回答:

尝试this.href如果元素是锚

以上是 将某些代码附加到div中的所有链接 的全部内容, 来源链接: utcz.com/qa/260114.html

回到顶部