2011-05-12 113 views
0

我的代碼是否正確?替換href鏈接文本

function replace_stuff() { 
    document.body.innerHTML = document.body.innerHTML.replace(/oldtexts/g,''); 
} 

我想一個a href標籤之間移除字符串「oldtexts」像這樣 但<a href ="#">oldtexts</a>我仍然看到oldtexts並沒有什麼被替換

+0

'oldtext'永遠不會匹配'/ oldtexts/g',還是隻是一個錯字? :) – DarthJDG 2011-05-12 07:36:17

+0

@DarthJDG錯字謝謝 – sarsar 2011-05-12 07:37:09

回答

1

我沒有嘗試這一個,但是這可能工作。 (用了jQuery)

$('a[href]').each(function(i){ 
if($(this).html()=="oldtext") $(this).html("&nbsp;"); 
}); 

$('a[href]').each(function(i){ 
$(this).html($(this).html().replace(/regex/g,"blahblah"));//warning : if replaced text contains nothing(""), then this will not work. 
}); 
1

您已經標記了jQuery的,所以我建議使用它:

$(function(){ 
    $('a').each(function(){ 
     var $this = $(this); 
     $this.html($this.html().replace(/oldtext/g, '')); 
    }); 
}); 
0

使用jQuery :)

$(document).ready(function(){ 
      $('#idofatag').text('replacevalueofoldtexts'); 
}); 

如果你想通過點擊一個屁股觸發這個改變上

$(document).ready(function(){ 
     $('#someButtonid').click(function(){ 
      $('#idofatag').text('replacevalueofoldtexts'); 
     }); 
}); 

http://jquery.com/

0

如果您嘗試使用/\b(oldtexts)\b/g或jQuery的.replace會發生什麼?

0

由於您似乎在使用jQuery,因此最乾淨的解決方案似乎使用了function for .html()

$('a').html(function (index, oldhtml) { 
    return oldhtml.replace(/oldtexts/g, ''); 
}); 

jsFiddle Demo

如果你想編寫一個可重複使用的功能,你可以做到這一點,當然:

function replace_stuff(index, oldhtml) { 
    return oldhtml.replace(/oldtexts/g, ''); 
} 

然後你就可以調用任何jQuery對象上:$('a').html(replace_stuff);