将某些代码附加到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