我有一些问题。有一个代码
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; - 这是错误
答案 0 :(得分:1)
我认为问题可能出在这里:
else {
var c ;
c.value = b;
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
您已将c声明为简单变量。而是将c声明为对象:
var c = {} ;
答案 1 :(得分:0)
} else {
c = { value: b };
GLTFireEvent(c, 'change');
GLTFireEvent(c, 'change')
}
这应该有效,c未定义,并且您不能将属性设置为未定义的类型。
当你执行var c;
时,你只需将其设置为未定义,var c = {}
将c设置为空对象,使用空对象可以设置属性。