0

我正在使用 CEWP (webpart) 并将此代码放在那里。但是这段代码不在<head>标签内。我需要将此代码插入<head>标签中,

<script src="http://code.jquery.com/jquery-latest.js"></script>

<script type="text/javascript">
$("*").each(function () { if ($(this).children().length == 0) { $(this).text($(this).text().replace('Respuesta','Responder')); } });
</script>

我怎样才能做到这一点?此代码将如何在 CEWP webpart 中工作?

4

1 回答 1

3

首先,您可以将代码放入<head>如果您将其设置为在文档就绪时运行。

但是,它仍然无法正常工作。您正在遍历所有标签。包括<html>, 这将是第一个被 选择的$('*')

因此,您读取<html>元素内的所有文本(即整个文档文本),对其进行字符串替换,然后将其写回 html text()<html>用一个简单的文本字符串替换元素的所有先前文本和元素内容。从而破坏页面上的所有其他元素。哎呀。

您要做的是找到每个文本节点并对其进行单独的字符串替换:

$(document).ready(function() {
    $('*').each(function() {
        for (var i= this.childNodes.length; i-->0;) {
            var child= this.childNodes[i];
            if (child.nodeType===3) // TEXT_NODE
                child.data= child.data.replace(/Respuesta/g, 'Responder');
        }
    });
});

(请注意,这里仍然存在许多可能的极端情况,其中包含表单字段和其他元素,其中更改其中的文本可能无法达到您的预期。)

于 2010-04-30T21:15:39.987 回答