2015-02-10 25 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