繁体   English   中英

Javascript将String转换为Object属性

[英]Javascript convert String to Object property

我想像Jquery一样构建自己的PROP函数,但使用纯Java script

这是我的代码:

<input id="submitButton" type="submit" value="LOGIN">

function prop(el, dom, boolean) {

    var convert = eval(dom);
    el.convert = boolean;
    console.log(convert);
}

var x = document.getElementById("submitButton");

prop(x, "disabled", true);

如何将字符串转换为对象属性? 听说eval有用吗? 但是为什么我出现以下错误?

ReferenceError: disabled is not defined

我的代码有什么问题?

应该使用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

这是因为您正在尝试评估仅“禁用”的含义。 eval("document.getElementById('submitButton').disabled")将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM