Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t改变对象变量的innerHTML_Javascript_Object_Innerhtml - Fatal编程技术网

Javascript Can';t改变对象变量的innerHTML

Javascript Can';t改变对象变量的innerHTML,javascript,object,innerhtml,Javascript,Object,Innerhtml,我有这个密码 var errorId = { name : document.getElementById('para_name').innerHTML, desc : document.getElementById('para_desc').innerHTML, photo : document.getElementById('para_photo').innerHTML, price :

我有这个密码

var errorId = {
        name    :    document.getElementById('para_name').innerHTML,
        desc    :    document.getElementById('para_desc').innerHTML,
        photo   :    document.getElementById('para_photo').innerHTML,
        price   :    document.getElementById('para_price').innerHTML,
        cat     :    document.getElementById('para_cat').innerHTML
    };
    errorId.name = 'Hello There';
    // this works: document.getElementById('para_name').innerHTML = 'Hello';

当我尝试使用对象访问器“.”更改innerHTML时,我无法更改innerHTML,但是,当代码运行时,下面的注释行可以完美地工作。

访问
innerHTML
不会设置对元素的引用,而只是返回其html的字符串表示形式。因此,您可以改为:

var errorId = {
    name    :    document.getElementById('para_name'),
    desc    :    document.getElementById('para_desc'),
   ...
};
errorId.name.innerHTML = 'Hello There';
或者你也可以这样做:

 var errorId = {
    _name    :    document.getElementById('para_name'),
    _desc    :    document.getElementById('para_desc'),
    _photo   :    document.getElementById('para_photo'),
    ...
    name : function(value){
       if(this._name)
           this._name.innerHTML = value;
    }
    ...

};
errorId.name('Hello There');