2015-02-10 60 views
-1

我不是专家使用JavaScript时,我有以下一段JavaScript代码:的JavaScript:代码重写行不使用eval()

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; 

非常感谢你。

+2

简单地说'if(document.getElementById('supplies'))'??? – Bergi 2015-02-10 18:37:01

+3

为什么这首先使用'eval'? – Bergi 2015-02-10 18:37:36

+0

只是删除eval并将其更改为if(document.getElementById('supplies')) – 2015-02-10 18:38:18

回答

2
if (document.getElementById('supplies')) 

...将工作在任何合理的现代浏览器。我不确定为什么你在代码中寻找间接方向;也许有很旧的浏览器没有.getElementById(但他们有.innerHTML,我想知道?)。

编辑:只是注意到,相同的功能没有在下一行eval使用!你有我。也许这个代码是工具生成的,并且在某些情况下该工具会生成奇怪的代码。

+0

我在清理Firefox返回的一些JavaScript错误。我不是编码员,这就是为什么我需要向那些了解它的人询问。感谢您的帮助和解释。 – Luis 2015-02-10 18:42:17