如果找不到ID(document.getElementById),希望JS继续

时间:2019-08-08 23:00:32

标签: javascript html

我正在尝试制作一个JavaScript,只是“忽略”缺少的div-id并继续运行。一直在寻找解决方案,但是大多数解决方案要么替换丢失的ID,要么将信息放入已经存在的ID中。我只希望我的脚本“正常”,因为不会找到某些ID。

var Info01 = `Some text`;
document.getElementById("Info01").innerHTML = Info01;

var Info02 = `Some other text`;
document.getElementById("Info02").innerHTML = Info02;

如果不存在div-id“ Info01”,我希望它很酷,然后执行下一行,依此类推。

我一直在尝试一些if语句,但我不足以自己解决这个问题,并且google并没有为我提供所需的解决方案。

希望有人可以提供帮助!

2 个答案:

答案 0 :(得分:3)

尝试这样的事情:

检查具有该ID的元素是否首先存在。

var Info01 = "Some text"; 

if(document.getElementById("Info01")) {
  document.getElementById("Info01").innerHTML = Info01;
}

var Info02 = "Some other text"; 

if(document.getElementById("Info02")) {
  document.getElementById("Info02").innerHTML = Info02;
}

答案 1 :(得分:3)

进一步了解Zachary McGee的答案。您可以避免重复(并在DOM中获取两次ID):

const info01 = "Some text"
const info02 = "Some other text"; 

const setText = (id, content) => {
  const item = document.getElementById(id)
  if (item === null) return
  
  item.innerText = content
}

setText("Info01", info01)
setText("Info02", info02)
<div id="Info02"></div>

我不是使用.innerText而不是.innerHTML,因为前者足以满足您的问题,而后者is subject to XSS则足够。