我想用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) ,页面上的类,网址等被破坏。
谢谢
答案 0 :(得分:3)
你可以这样做:
$('body *').each(function(){
var txt = $(this).text();
txt = txt.replace('laptop', '<a href="http://test.com/laptop">laptop</a>');
$(this).html(txt);
});
编辑当然你可以将它作为一个功能并重复使用它:
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?