我想在页面加载之前加载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

我面临javascript查找和替换代码的问题,这可能是以前已经回答过的,但我没有发现任何对我有用的答案

$(文档).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,“”)
以删除
;)非常感谢,现在都已修复。