得到重复<a href=""> src (jquery)</a>

时间:2013-07-06 09:31:31

标签: jquery href jquery-wrap

我使用这个Jquery脚本,它应该提取href源,并解析html var中的文本但由于某种原因我得到了重复...

代码:

var html = '<p>lorem ipsum<a href="sound.mp3">Sound</a></p>';

var $html = $('<div/>').html(html);
$html.find("a[href$='mp3']").filter(function () {
    var $mp3 = $(this);
    return $mp3.attr('href') 
}).wrap(function () {
    return ' <test="' + $(this).attr('href') + '">';
});

html = $html.html();

alert(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

2 个答案:

答案 0 :(得分:0)

尝试

$html.find("a[href$='mp3']").filter(function () {

您在mp3之后错过了'] ',并且您可以选择更改

return 'test="' + this.getAttribute('href') + '"></a>';

到这个

return 'test="' + this.attr('href') + '"></a>';

答案 1 :(得分:0)

更新代码:

var html = '<p>lorem ipsum<a href="sound.mp3">Sound</a></p>';

var $html = $('<div/>').html(html);
$html.find("a[href$='mp3']").filter(function () {
    var $mp3 = $(this);
    $mp3.after('<test>' + $mp3.attr('href') + '</test>');
    $mp3.remove();
});

html = $html.html();

alert(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>