我正在使用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网络部分中工作?
发布于 2010-04-30 21:15:39
首先,如果将代码设置为在文档就绪时运行,则可以将代码放入<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');
}
});
});(请注意,这里仍然有许多可能的边缘情况,表单字段和其他元素中的文本更改可能无法达到预期的效果。)
https://stackoverflow.com/questions/2747532
复制相似问题