簡體   English   中英

如何設置“if object exists”條件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM