未捕获的类型错误:无法设置未定义的属性“值”
2016-11-28
1525
我遇到了一些问题。代码为
function doGoogleLanguageTranslator(a) {
if (a.value) a = a.value;
if (a == '') return;
var b = a.split('|')[1];
var c;
var d = document.getElementsByTagName('select');
for (var i = 0; i < d.length; i++)
if (d[i].className == 'goog-te-combo') c = d[i];
if (typeof(c) !== 'undefined') {
if (document.getElementById('google_language_translator') == null || document.getElementById('google_language_translator').innerHTML.length == 0 || c.length == 0 || c.innerHTML.length == 0) {
setTimeout(function() {
doGoogleLanguageTranslator(a)
}, 500)
} else {
c.value = b;
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
} else {
if (document.getElementById('google_language_translator') == null || document.getElementById('google_language_translator').innerHTML.length == 0) {
setTimeout(function() {
doGoogleLanguageTranslator(a)
}, 500)
} else {
var c ;
c.value = b;
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
}
}
我遇到了错误。程序无法理解声明的 c。c.value = b; - 这是错误
2个回答
我认为问题可能出在这里:
else {
var c ;
c.value = b;
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
您已将 c 声明为简单变量。相反,请将 c 声明为对象:
var c = {} ;
Amoolya S Kumar
2016-11-28
} else {
c = { value: b };
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
这应该可行,c 未定义,并且您不能将属性设置为未定义的类型。
当您执行
var c;
时,您只是将其设置为未定义,
var c = {
将 c 设置为空对象,使用空对象您可以设置属性。
Yan Mayatskiy
2016-11-28