我想对一堆html页面使用相同的.js,但不一定要在每个页面中都使用该.js的所有ID。现在,如果我不使用一个ID;完全没有显示ID。
var yes = 'Yes';
var no = 'No';
var available = 'Available: ';
document.getElementById("001").innerHTML=available+yes;
document.getElementById("002").innerHTML=available+no;
document.getElementById("003").innerHTML=available+yes;
一个与此HTML正常工作:
<div id="001"></div>
<div id="002"></div>
<div id="003"></div>
一个带有这个的HTML,不是很好:
<div id="002"></div>
<div id="003"></div>
即使未使用某些ID,该怎么办才能使其运行?
完全做到这一点,可能有一个超级简单的解决方案(?)-但我找不到它。希望这里的某人可以帮助我-无需完全抨击我,也无需告诉我这是一个多么糟糕的实践,我应该用某种我从未听说过的巨型haxxor语言来重写它:
提前致谢!
如果找不到匹配的元素,则该document.getElementById()
函数返回null
。null.innerHTML
是导致当前脚本停止执行的错误。因此,您只需要测试null
:
var el = document.getElementById("001");
if (el != null) el.innerHTML = available + yes;
该null
测试可以简化为:
if (el) el.innerHTML = available + yes;
如果元素“ 001”将始终为“是”,元素“ 002”将始终为“否”,依此类推,则可以执行以下操作:
var results = {"001" : yes, "002" : no, "003" : yes};
var el, k;
for (k in results) {
el = document.getElementById(k);
if (el) el.innerHTML = available + results[k];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句