[英]How do I setup an “if object exists” condition?
有沒有辦法檢查對象是否存在? 我不斷收到“需要對象”的錯誤。 我知道該對象不存在,我想繞過我的代碼的一部分,如果是這樣的話。 我不知道我沒有嘗試過......
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)
有沒有辦法看看對象是否存在?
在getElementById
調用之后, codeName
是DOM元素或null。 您可以使用警報查看哪個:
alert(codeName);
所以, if (codename != null)
應該工作。
錯誤是在它到達那么遠之前發生的嗎? 我會嘗試添加警報,以便在代碼運行時查看值。 或者在調試器中逐步執行此代碼。
嘗試:
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 */
}
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
我不知道是什么document
,但你可以嘗試類似的東西
if(document.getElementById('code'+[i]) == null)
{
//...do Something
}
所以在你使用之前測試它是否存在......
我沒有做很多JS編碼,但似乎你的[i]是問題所在。 據我所知,[]用於訪問數組的字段,而你沒有數組。 只需使用“代碼”+ i
在ruby中, nil
相當於false
。
所以試着檢查一下:
if codeName
<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);
}
試試/捕獲會為你工作嗎? 例
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;
}
}
}
也許嘗試檢查您的對象是否繼承了您的函數所需的類型? 像這樣:
if(codeName is String)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.