JQuery:如何组合.contains()和.replaceWith()?

时间:2013-03-25 06:21:29

标签: javascript jquery replacewith

我想用JQuery用我自己的html替换html和元素。我以为我可以使用:

$('#nav a:contains(replace me)').replaceWith('<h2>Label</h2>');

但这不起作用。我尝试了很多这种变化无济于事。

有人知道我做错了吗?

编辑: 添加了当前的html:

<div id="nav">
<a href="#">replace me</a>
<a href="#">this is ok</a>
<a href="#">this is ok</a>
<a href="#">this is ok</a>
</div>

我希望它看起来像:

<div id="nav">
<a href="#"><h2>Label</h2></a>
<a href="#">this is ok</a>
<a href="#">this is ok</a>
<a href="#">this is ok</a>
</div>

3 个答案:

答案 0 :(得分:4)

我想我会这样做:

$('#nav a').html(function(i, html) {
    return $.trim(html) == 'replace me' ? '<h2>Label</h2>' : html;
});

FIDDLE

因为我不太喜欢:contains

$('#nav a:contains(replace me)').html('<h2>Label</h2>');

FIDDLE

因为replaceWith()将取代整个锚,而不仅仅是它的内容。

答案 1 :(得分:1)

可能对你有所帮助

   $("div").find('a').each(function(index)
    {
        if(index==0){
         $(this).html("<h2>Label</h2>");
        }

    }); 

答案 2 :(得分:0)

$("a").text(function () {
    return $(this).text().replace("replace me", "<h2>Label</h2>"); 
});

这是一个jsfiddle链接 http://jsfiddle.net/xpfRV/1/