我想在页面加载之前加载javascript代码。
我面临javascript查找和替换代码的问题,这可能是以前已经回答过的,但我没有发现任何对我有用的答案我想在页面加载之前加载javascript代码。,javascript,jquery,html,Javascript,Jquery,Html,我面临javascript查找和替换代码的问题,这可能是以前已经回答过的,但我没有发现任何对我有用的答案 $(文档).ready(函数(){ $('[class=“incometax”]')。每个(函数(i,v){ var text=$(v.text(); var new_text=text.replace(“旧文本”、“新文本”); $(v).文本(新文本); }); });加载时有一个名为的函数。您可以通过以下方式进行尝试: <body onload="changetext()"&g
$(文档).ready(函数(){
$('[class=“incometax”]')。每个(函数(i,v){
var text=$(v.text();
var new_text=text.replace(“旧文本”、“新文本”);
$(v).文本(新文本);
});
});代码>加载时有一个名为的函数。您可以通过以下方式进行尝试:
<body onload="changetext()">
</body>
<script type="text/javascript">
function changetext(){
$('[class="incometax"]').each(function(i,v){
var text =$(v).text();
var new_text = text.replace("old text", "new text");
$(v).text(new_text);
});
}
</script>
函数changetext(){
$('[class=“incometax”]')。每个(函数(i,v){
var text=$(v.text();
var new_text=text.replace(“旧文本”、“新文本”);
$(v).文本(新文本);
});
}
在加载文档之前,没有客户端方法可以使用JS更改某些文本
我认为唯一的解决办法是使用不可见元素在…上运行文本更改脚本。。。然后,一旦文本被更改,使其可见
CSS:
.incometax{
visibility: hidden;
}
$(document).ready(function(){
$('[class="incometax"]').each(function(i,v){
var text =$(v).text();
var new_text = text.replace("old text", "new text");
$(v).text(new_text);
$(v).css({"visibility":"visible"}); // Make them visible.
});
});
脚本:
.incometax{
visibility: hidden;
}
$(document).ready(function(){
$('[class="incometax"]').each(function(i,v){
var text =$(v).text();
var new_text = text.replace("old text", "new text");
$(v).text(new_text);
$(v).css({"visibility":"visible"}); // Make them visible.
});
});
如果有一种效果,比如它们不会同时出现,那么这里有一种替代方法:
$(document).ready(function(){
$('[class="incometax"]').each(function(i,v){
var text =$(v).text();
var new_text = text.replace("old text", "new text");
$(v).text(new_text);
});
$('[class="incometax"]').css({"visibility":"visible"}); // Make them visible.
});
您可以使用$(“.incometax”)
而不是$('[class=“incometax”]')
)
编辑
为了更简洁、更高效,可以用这种方式编写上述内容。
它使用$(this)
并避免无用的查找。它还使用链接
$(document).ready(function(){
$(".incometax")
.each(function(){
$(this).text($(this).text().replace(/old text/g, "new text"));
})
.css({"visibility":"visible"});
});
这部分$(document).ready…
的字面意思是“等待页面加载(大部分),然后执行此jQuery。”因此。。。。您可以将代码从中取出,并希望它能工作。一个快速的解决方案是将您的所有内容包围在div
或span
中,并将其设置为display=none代码>更改文本后,只需将display
设置为阻止或内联该元素。作为一个解决方案,这可能对您有效,也可能无效。@TJBlackman No.$(文档)。ready
表示等待DOM准备就绪。那很不一样。从此回调中删除代码将不起作用。您正在经历的事情有一个名称,它被调用。在您的情况下,我会认真考虑更改服务器端的文本,或者从完全隐藏的文本开始(可能在加载GIF后面),并且当它实际上准备好显示时显示它。您可以将脚本移动到接近(但低于)所讨论的元素的位置,并在不等待文档加载的情况下运行它,这可能会取得一些成功,但这并不能保证对每个人都有效(尤其是当他们的CPU速度较慢时);它不是未设置样式的内容的闪现,而是尚未搜索和替换的内容的闪现。它仍然会闪现,然后更改文本body onload
在document.ready(它等待相关的图像等;document.ready只等待DOM)。此答案无法解决问题,因为它仅在加载页面后更改文本。它仅替换内容中的第一个旧文本,我在内容中多次使用word old text,我需要到处替换它,而不是只替换第一个。我使用“regex”作为的第一个参数编辑了最后一个代码建议。替换()
…但要小心…正则表达式中有一些字符具有特殊含义,可能需要转义。在上尝试您自己的正则表达式很好,但当我尝试删除内容中显示的任何html标记时,该函数会中断。就像我需要删除内容中多次出现的和,并且对工作正常一样t当我添加/for时,它会中断并隐藏完整的类。请尝试。替换(//g,“”)
以删除和
;)非常感谢,现在都已修复。