如何使用jQuery用url / url替换单词/单词?

时间:2011-09-29 08:21:32

标签: jquery url replace word words

我想用jQuery替换链接(test.com/l12,test.com/13,test.com/14)上的特定单词(laptop,asus,acer)。 我发现了这个功能

<script type="text/javascript">
(function($) {
          var thePage = $("body");
          thePage.text(thePage.html().replace(/laptop/ig, '<a href="http://test.com/laptop">laptop</a>')); 
})(jQuery)
</script>

但问题是它取代现有网址中的笔记本电脑字(如果网址为test.com/laptop-review,则创建像test.com/test.com/laptop-review这样的网址)和所有笔记本电脑html(html ID) ,页面上的类,网址等被破坏。

谢谢

2 个答案:

答案 0 :(得分:3)

你可以这样做:

$('body *').each(function(){
     var txt = $(this).text();

    txt =  txt.replace('laptop', '<a href="http://test.com/laptop">laptop</a>');


    $(this).html(txt);
});

小提琴http://jsfiddle.net/LXw6P/

编辑当然你可以将它作为一个功能并重复使用它:

var updateTxt = function(stringToReplace){
    var replaceText = '<a href="http://test.com/'+stringToReplace'+">'+stringToReplace+'</a>';
    $('body *').each(function(){
       var txt = $(this).text();

        txt =  txt.replace(stringToReplace, replaceText);


        $(this).html(txt);
    });
}

使用它:

updateTxt('laptop');

答案 1 :(得分:1)

您可以尝试使用jQuery文本替换插件 - http://net.tutsplus.com/tutorials/javascript-ajax/spotlight-jquery-replacetext/

插件应忽略HTML标记,只更改“文本”值。

此问题中提供了更多详细信息 - How do I do a case insensitive search for a word and convert it to a hyperlink using jquery?