分配中的左侧无效

时间:2014-02-03 07:12:58

标签: javascript

我只是想知道为什么在执行以下操作时出现错误:

function something(id){
    return document.getElementById(id).value;
}
something('id') = 'hello';

但我可以毫无错误地做到这一点:

document.getElementById('id').value = 'hello';

他们假设是一样的,对吧?

当然,假设有一个带id的输入元素,名为'id'。

感谢。

2 个答案:

答案 0 :(得分:0)

在第一个示例中,您尝试将某些内容分配给函数的结果,而在第二个示例中,您将某些内容分配给对象的属性。

可能误解的结果是函数的返回值只是属性的“内容”(即字符串),而不是对它的引用。

要实现您要执行的操作,您需要使用值调用该函数并在那里进行分配:

function something(id, v){
    document.getElementById(id).value = v;
}
something('id', 'hello');

答案 1 :(得分:0)

  1. 您的第一个方法是检索数据。

  2. 而第二部分是关于分配数据。在这里您正在为function变量赋值。

  3. 你可能需要改变如下

    function something(id, val){
        document.getElementById(id).value = val;
        return document.getElementById(id).value;
    }
    

    然后将其称为

    something('id', 'hello');