【问题标题】:Is it possible to make User defined DOM changes in runtime? [duplicate]是否可以在运行时进行用户定义的 DOM 更改? [复制]
【发布时间】:2012-12-08 16:21:25
【问题描述】:

可能重复:
javascript object, access variable property name?

我在玩 JS,学习一些东西,我想知道一些东西...... 假设您有一个函数aFunc(),并且您接受一个字符串aFunc(val)。该值是用户定义的,然后用于修改元素的 CSS。

例如:

function aFunc(val){
    document.getElementById('something').style.val = 'red';
}

假设用户输入了borderColor,它会以某种方式引用borderColor val 所在的位置。我不知道如何或是否可能。

编辑: 请不要eval() :)

【问题讨论】:

    标签: javascript


    【解决方案1】:

    仅以此为基础:JSBIN- Demo on a Div

    var type = prompt("style");
    var value = prompt("value");
    document.body.style[type] = value;
    

    【讨论】:

    • 正确答案!在 JavaScript 中 object.val 与 object['val'] 相同,所以如果你想使用变量作为属性名称,只需使用 [] 而不是 "."。
    • 谢谢!这很好用!
    【解决方案2】:

    JavaScript 中的每个对象都有一个名为 hasOwnProperty 的方法,它接受一个字符串值并返回一个布尔值。

    var myObj = {
       name: "Josh"
    };
    
    myObj.hasOwnProperty("name") === true; //This is true
    

    您可以使用它来测试特定属性的存在,然后使用Akhil Sekharan's answer 中所述的方法访问该属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多