有没有办法检查对象是否存在?我不断收到“需要对象”的错误。我知道该对象不存在,我想绕过我的代码的一部分,如果是这样的话。我不知道我没有尝试过......
var codeName = document.getElementById('testCode');
//I have tried
if(codeName != null)
if(codeName.length != 0)
if(typeOf codeName != 'undefined')
if(!codeName)
if(codeName.value != null)
有没有办法查看对象是否存在?
答案 0 :(得分:3)
getElementById
调用后,codeName
是DOM元素或null。您可以使用警报查看:
alert(codeName);
所以if (codename != null)
应该有用。
错误是在它到达那么远之前发生的吗?我会尝试添加警报,以便在代码运行时查看值。或者在调试器中逐步执行此代码。
答案 1 :(得分:2)
尝试:
var codeName = document.getElementById(code[i]) || null;
if (codeName) {/* action when codeName != null */}
如果你想确定codeName是一个Object:
if (codeName && codeName instanceof Object) {
/* action when codeName != null and Object */
}
答案 2 :(得分:0)
var codeList = document.getElementById('codeList');
if(!codeList && !codeList.value && !codeList.value.length) return;
var code = codeList.value.split(","),
itemCount = code.length;
if(!itemCount) return;
for (var i=0, i<itemCount; i++) {
var codeName = document.getElementById(code[i]);
if(!codename || !codename.length) continue;
//do something here...
}
我在这里得到了一个有效的例子:http://jsbin.com/uduxe4/15
答案 3 :(得分:-1)
我不知道document
是什么,但您可以尝试类似
if(document.getElementById('code'+[i]) == null)
{
//...do Something
}
所以在使用之前测试它是否存在 ...
答案 4 :(得分:-1)
我没有做很多JS编码,但看起来你的[i]就是问题。据我所知,[]用于访问数组的字段,而你没有数组。只需使用“代码”+ i
答案 5 :(得分:-1)
红宝石nil
相当于false
。
因此,请尝试检查:
if codeName
答案 6 :(得分:-1)
<div id='code1'></div>
var itemCount = 10;
var len = 10;
len = itemCount;
for (var i=0;i<len; i++) {
var codeName = document.getElementById('code'+ i);
if(codeName == null)
alert("Nope " + i);
else
alert("Yep " + i);
}
答案 7 :(得分:-1)
尝试/捕获会为你工作吗?的 Example 强>
function toDoStuff(elem) {
codeName = document.getElementById(elem);
if (!codeName) throw "Object isn't here yet!"
}
for (var i = 0; i < 5; i++) {
try {
toDoStuff('someElem');
} catch (err) {
if (err == "Object isn't here yet!") {
alert("Object isn't ready yet leaving loop!");
break;
}
}
}
答案 8 :(得分:-2)
也许尝试检查您的对象是否继承了您的函数所需的类型?像这样:
if(codeName is String)