Javascript将String转换为Object属性

Javascript convert String to Object property

本文关键字:Object 属性 转换 String Javascript      更新时间:2023-09-26

我想像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

这是因为您试图评估"禁用"本身的意义。CCD_ 19会起作用。