0

for ループ内で getjson を呼び出しています。現在、私のコードはすべてのアイテムを印刷し、販売されていないアイテムを省略していません!

これは、アイテムが販売されているかどうかを確認する部分です。

 $.getJSON('http://anyorigin.com/get?url=http://www.asite.com/itemtocheck.php='+ itemName + '/&callback=?', function(data){

       var siteContents = data.contents;      
     var n=siteContents.search("This item is not on sale");

    if(n=-1)
        {
         //alert("This item is on sale. n:"+n);

         var siteContents2 = "This item is on sale:"+itemName;
         document.getElementById("myDiv").innerHTML += siteContents2;
        };

この if ステートメントの何が問題なのかわかりません。アイテムが販売されていなくても、常に true になります。「forループ」内のgetjsonへの各呼び出しの間に遅延を置く方法はありますか(非常に短い遅延なので、getjsonはデータを取得し、それをフィルタリングするのに十分な時間があります)?

よくわかりませんが、おそらく「forループ」がgetjsonを非常に高速に呼び出しているため、各項目をチェックするのに十分な時間を与えていないと思います。私もこのようにしてみました:

setTimeout(GetJSONResult('pen'), 500);

しかし、何らかの理由で機能しませんでした!販売されていないアイテムを除外するようにコードを修正するのに役立つ人はいますか?ありがとう

    <script>  

function GetJSONResult(itemName)
{
//alert("test:"+itemName);
 $.getJSON('http://anyorigin.com/get?url=http://www.asite.com/itemtocheck.php='+ itemName + '/&callback=?', function(data){

       var siteContents = data.contents;      
  //writes to textarea  
  document.myform.outputtext.value = siteContents ;  


var n=siteContents.search("This item is not on sale");

document.write("value of n"+n);
 if(n=-1)
{
 //alert("This item is on sale. n:"+n);

 var siteContents2 = "This item is on sale:"+itemName;
 document.getElementById("myDiv").innerHTML += siteContents2;
}; 
});  

};


items=["pen","paper","book","tshirt","cup","coffee","plate","cherry","apple","mango","orange"];
for (var i=0;i<items.length;i++)
{
document.write(items[i] + "<br>");

GetJSONResult(items[i]);
}
////setTimeout(GetJSONResult('pen'), 500);
////setTimeout(GetJSONResult('paper'), 500);
////setTimeout(GetJSONResult('book'), 500);
////setTimeout(GetJSONResult('tshirt'), 500);

////GetJSONResult('cup');
////GetJSONResult('coffee');
////GetJSONResult('plate');
////GetJSONResult('cherry');
////GetJSONResult('apple');
////GetJSONResult('mango');
////GetJSONResult('orange');

</script>   
</head>

<body>
<br>

  <div id="myDiv"></div>
  <br>  


</body>
</html>
4

1 に答える 1

1

if ステートメントで割り当てを行っていることに気付きましたか?

もし(n=-1)

おそらくあるはずです

もし(n == -1)

または、本当に安全になりたい場合

if(n === -1)

于 2013-05-09T14:35:06.693 に答える