JavaScript:重写代码行,使其不使用eval()

JavaScript: Rewrite line of code to not use eval()

本文关键字:eval JavaScript 重写 代码      更新时间:2023-09-26

我不是JavaScript专家,我有以下JavaScript代码:

var cat='';
cat+='<div><a class="hl">Supplies</a><div class="tb1" id="agriculture-supplies_1" style="display:none">';
if (eval("document.getElementById('supplies')"))
document.getElementById("supplies").innerHTML = cat;

我在jsfiddle上运行了它来整理它,它建议不要使用eval,因为它可能有害。

我想寻求帮助,并了解我可以用哪些其他方式来写这个部分:

if (eval("document.getElementById('supplies')"))
document.getElementById("supplies").innerHTML = cat;

非常感谢。

if (document.getElementById('supplies'))

将在任何合理现代的浏览器中工作。我不知道为什么您正在查看的代码中存在间接;也许有一些非常旧的浏览器没有.getElementById(但我想知道他们有.innerHTML吗?)。

编辑:刚刚注意到,在下一行没有eval的情况下使用了相同的函数!你明白了。也许这个代码是工具生成的,而这个工具在某些情况下生成了奇怪的代码。