我有一个外部JavaScript,旨在替换我网站上的某些字词。为了保持高效,每个页面都会加载相同的外部脚本,因此如果需要进行任何更改,我只需编辑单个文件即可。这是我使用的代码示例:
document.getElementById("ey").innerHTML = 'AY'
document.getElementById("ny").innerHTML = 'BY'
document.getElementById("gy").innerHTML = 'CY'
但是,我发现如果一个页面包含一个元素(例如" gy")而不包含另一个元素(" ny"),则脚本无法正确执行。我有很多这些变化(50ish),所以我很乐意让它发挥作用。
我知道如何让代码为未找到特定ID提供补贴吗?
答案 0 :(得分:2)
好吧,你可以写点像
var el = document.getElementById("MY-ID")
if (el)
el.innerHTML = 'MY VALUE'
一个很好的解决方案是将它包装在一个方法中,如下所示:
function setValue(id, value){
var el = document.getElementById(id)
if (el)
el.innerHTML = value
}
然后称之为:
setValue('ey', 'AY')
setValue('ny', 'BY')
等等
答案 1 :(得分:2)
setInnerHTML('ey', 'AY');
setInnerHTML('ny', 'BY');
...etc etc
function setInnerHTML(elementId, innerHTML) {
var el = document.getElementById(elementId);
if (el) {
el.innerHTML = innerHTML;
}
}
答案 2 :(得分:2)
你可以为此做一个小结构。
(function(){
var defaultChanges = {
'ey' : 'AY',
'ny': 'BY',
'gy' : 'CY'
};
for(var id in defaultChanges){
var el = document.querySelector("#"+id);
if(el) el.innerHTML = defaultChanges[id];
}
})()
这样你需要做的就是改变你的对象,并在页面中更改整个集合。
答案 3 :(得分:0)
如果未找到,请使用虚拟对象:
(document.getElementById("ey") || {innerHTML:''}).innerHTML = 'AY'
(document.getElementById("ny") || {innerHTML:''}).innerHTML = 'BY'
(document.getElementById("gy") || {innerHTML:''}).innerHTML = 'CY'