2016-05-13 9 views
-1

以下のコードでは、各ループは実行されません。ループの上下のコードが実行されます。理由を把握できません。

GM_xmlhttpRequest({ 
 
    method: "GET", 
 
    url: link, 
 
    synchronous: true, 
 
    onload: function(response) { 
 

 
    //console.log($(response.responseText).find("#P16_STATUS2").text()); 
 
    var status = "NOT FOUND"; 
 
    if ($(response.responseText).find("#P16_STATUS2").size() === 1) { 
 
     status = $(response.responseText).find("#P16_STATUS2").text(); 
 
     console.log("Status is " + status); 
 
    } else if ($(response.responseText).find("#P16_STATUS3").size() === 1) { 
 
     status = $(response.responseText).find("#P16_STATUS3").val(); 
 
     console.log("Status is " + status); 
 
    } 
 
    alert("one"); 
 
    //for (var i = 0; i < requestArray.length; i++) {  
 
    $.each(requestArray, function(key, value) { 
 
     alert("in each"); 
 
     console.log("inside for"); 
 
     if (key === val) { 
 
     console.log("request id found already present in array"); 
 
     return false; // <=== breaks out of the loop early 
 
     } else { 
 
     console.log("request id not found, Hence adding" + newArray[i]); 
 
     var pusharr = [val + "-" + status]; 
 
     requestArray.push(pusharr); 
 
     console.log("Updated Array is " + requestArray); 
 
     } 
 
    }); 
 

 

 
    alert("out"); 
 
    linkTag.attr("title", status); 
 

 
    } 
 
});

すべてのヘルプははるかに高く評価されます。

+2

requestArrayはどこから来たのですか?私はそれが空または未定義と思われる。 – n8wrl

+0

無関係: 'return false; // <===ループ初期から壊れてしまい、あなたの想定通りに動作しません。 – dan08

+0

のために、元のforループがうまくいくでしょう。 –

答えて

1

requestArrayが空でないことを確認してください。 jQueryは空のオブジェクト/配列上の各関数を実行しません。

関連する問題