用jQuery替换文本

时间:2012-11-05 10:02:49

标签: javascript jquery replace

我正在尝试使用以下代码替换网站上的文字:

<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的引用已放在母版页中。

任何线索,为什么这不起作用?

此致 托马斯

4 个答案:

答案 0 :(得分:1)

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

我认为这不对

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

你应该使用:

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

然后你应该更好地记录你的问题,我不明白你的真正问题。

答案 1 :(得分:1)

我发现你使用两个doc ready函数,你必须只使用一个:

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

or :     $(function() {

看看是否有效。

由于

答案 2 :(得分: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);
            });
   });

答案 3 :(得分:0)

在你的代码中,你正在剥离一些元素样式。如果你想保持布局,你最好使用html而不是文字,但这实际上取决于你在寻找什么。

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