2015-12-22 172 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。你是最好的!! –

相关问题