2012-11-05 108 views
0

我想使用此代碼的網站上替換文本:替換文本與jQuery

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(function() { 
      $(document.body).find('*').each(function() { 
       var tmp = $(this).children().remove(); 
       var text = $(this).text(); 
       text = text.replace(/Vorname/g, "Firstname"); 
       $(this).text(text); 
       $(this).append(tmp); 
      }); 
     }); 
    }); 

</script> 

HTML(片段)是這樣的(由SharePoint產生):

<td style="padding:4px;"> 
<div> 
    <label for="ctl00_IWS_WH_CPH_Content_ContactUsControl1_firstName"> 
     <span><font color='red'>*</font> Vorname (erforderlich):</span> 
    </label> 
</div> 

上面的jQuery代碼沒有被執行... 對jQuery的引用已被放置在母版頁中。

任何線索爲什麼這不起作用?

問候, 托馬斯

+1

因此,你的身體開始,刪除所有元素的所有孩子,然後你想要替換文本在哪裏? – adeneo

回答

1
$('.element').text("sometext"); 

我認爲這是不對的

var text = $(this).text(); 
       text = text.replace(/Vorname/g, "Firstname"); 

你應該使用:

var text = $(this).text(); 
    text.replace("Vorname", "Firstname"); 

,那麼你應該記錄好你的問題,我不不明白你真正的問題。

1

我發現使用兩個文檔準備功能,您必須使用只有一個:

Either : $(document).ready(function() { 

or :  $(function() { 

,看看這是否正常工作。

感謝

+0

感謝您的快速響應,現在作品... – user1799760

+0

沒錯。 「$(document).ready(function(){」和「$(function(){」)是一樣的。 – ronen

+0

它是一個選擇的答案嗎?然後接受它。謝謝 – Jai

1

working demo

檢查的jsfiddle鏈接,工作代碼

$(document).ready(function() { 
$(document.body).find('*').each(function() { 
       var tmp = $(this).children().remove(); 
       var text = $(this).text(); 
       text = text.replace(/Vorname/g, "Firstname"); 
       $(this).text(text); 
       $(this).append(tmp); 
      }); 
    }); 
0

在代碼中,你是剝離某些元素的風格。如果你想保持佈局,你最好不要使用html而不是文本,但是這取決於你正在尋找的東西。

$(document).ready(function() { 
    $('body').find('*').each(function() {     
     var html= $(this).html().replace(/Vorname/g, "Firstname"); 
     $(this).html(html); 
    }); 
});