2015-12-22 90 views
1

我想要構建自己的PROP函數,就像Jquery那樣,但純粹爲Java scriptJavascript將字符串轉換爲對象屬性

這是我的代碼:

​​3210

如何字符串轉換成對象的屬性?聽說eval會有用嗎?但爲什麼我得到了下面的錯誤?

ReferenceError: disabled is not defined 

我的代碼出了什麼問題?

+2

使用 - 'EL [DOM]',或'el.setAttribute(DOM,值)'操縱'一個'el'的properties'。 – BatScream

+0

^你應該使用這個。 –

+0

哇蝙蝠俠,你的方法是完美的!非常感謝!!!!不管怎樣,我不知道是什麼樣的人給我這個問題的投票大聲笑 –

回答

2

您應該而不是使用eval()將屬性名稱轉換爲屬性。使用Property accessors。例如,el[dom]el.dom

如果ObjectHTML元素,則可以使用setAttributegetAttribute可用的方法。

當您將字符串作爲參數傳遞給eval時,它會嘗試將該字符串表示爲java腳本代碼。

在這裏,你已經傳遞了一個字符串disabled

它被表示爲:

disabled; 

的解釋,現在試圖找到一個名爲disabled變量。由於disabled不是我們在上下文中定義的變量,因此會引發錯誤:ReferenceError: disabled is not defined

要驗證這一點,請嘗試定義一個變量,然後調用它的eval()函數。

var disabled = 10; 
console.log(eval("disabled")); 

打印:#10

0

這是因爲您正在嘗試評估單獨「禁用」的內容。 eval("document.getElementById('submitButton').disabled")會工作。

+0

這一個也工作!感謝Aiman Al-Eryani。你是最好的!! –

相關問題