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');