1

我正在使用以下代码隐藏某些文本(2009、2010、2011、2012、2013),使其不显示在 div 中:

<script type="text/javascript">
$(function ($) {
var el = $("#right_side");
//replace(/word to remove/ig, "");  
el.html(el.html().replace(/\(2009\)/ig, ""));
el.html(el.html().replace(/\(2010\)/ig, ""));
el.html(el.html().replace(/\(2011\)/ig, ""));
el.html(el.html().replace(/\(2012\)/ig, ""));
el.html(el.html().replace(/\(2013\)/ig, ""));
});
</script>

首先,我如何压缩这段代码,以便我只使用 1 el.html 等。

其次,如何在加载 DOM 之前先触发此代码?目前,在代码启动之前,我可以在一两秒内看到不需要的文本。这种延迟也会导致 adsense 广告消失。我将这段代码直接放在 JQUERY 之后的 HEAD 中,这是第一个加载的。

我在这里有一个活生生的例子。查看右侧栏中的“最新预告片”部分,了解代码的目标位置。

对此的任何帮助将不胜感激。

多谢了。

4

4 回答 4

0

您可以尝试使用正则表达式 - el.html(el.html().replace(/(20[\d\d]{2})/ig, '')。也许有包含隐藏文本的容器或visibility: none. 仅当替换完成后,才将其放回视图中。

于 2013-04-13T03:29:31.777 回答
0

尝试

el.html(el.html().replace(/\(2009|2010|2011|2012|2013\)/ig, ""));
于 2013-04-13T03:30:01.940 回答
0
$(function ($) {
var el = $("#right_side");
//replace(/word to remove/ig, "");  
CleanUp(el,2009);
CleanUp(el,2010);

...
...
});
function CleanUp(el,value)
{
el.html(el.html().replace('/\(' + value + '\)/ig', ""));


}
于 2013-04-13T03:31:24.373 回答
0

要替换以 20 开头并以两位数结尾的任何内容,您可以使用以下内容。如果这是在标题中加载的,则必须等待 DOM 加载。

el.html=el.html().replace(/\(20\d\d\)/g, '');

如果你宁愿它是一个真正的 OR,你可以继续重复......

el.html=el.html().replace(/\((2009|2010|2011|2012|2013)\)/g, '');

编辑:显然,这个库可用于在为某些浏览器加载时修改 DOM,可以设置回调以替换正确的 CSS 类 - https://github.com/jamesallardice/Progressive.js

于 2013-04-13T03:32:53.817 回答