2010-09-07 114 views
0

我正在嘗試使用JQuery來搜索並替換給定字符串的所有實例。 JQuery是我發現的唯一不強制重載整個頁面的方法。這就是我現在所擁有的:查找並替換爲JQuery

<script> 
$("*").each(function() { 
    if ($(this).children().length == 0) { 
     $(this).html($(this).html().replace('0101','0102')); 
    } 
}); 
</script> 

眼下,這種替換頁面上有0102 0101 情況,但並不HREF鏈接內更換的情況。有誰知道爲什麼?我真的需要這樣來徹底查找/替換整個文檔。

回答

1

添加此

$(this).attr('href', $(this).attr('href').replace('0101','0102')); 

的html的()方法,只是要的元件內更換HTML。

.attr()允許您訪問當然是href的元素的屬性。

+0

他是用'$(本)。html的()'女巫將返回元素文本,如''...那裏它會正確更換。 – RobertPitt 2010-09-07 07:57:20

+0

這沒有奏效。我在哪一點上加入了這段代碼?你可以發佈你建議的整個代碼嗎? – Julien 2010-09-07 08:08:58

0

我相信你的問題在於使用.replace()。如果您使用字符串作爲搜索值,則只會替換第一個匹配項。你需要使用正則表達式與全球標誌是:

$(this).html($(this).html().replace(/0101/g,'0102')); 
+0

這也沒有工作。 – Julien 2010-09-07 08:15:33

+0

看看這個例子:http://jsfiddle.net/2BKnz/我認爲選擇身體符合你的意圖。讓我知道這是否適合你。 – jwueller 2010-09-07 08:27:54

+0

當我把這段代碼放到我的站點時,它會經歷一個無限的加載循環。 – Julien 2010-09-07 08:47:33