-1

まだ学習中で、助けが必要です。

このコード例は、URL の有効性をチェックします。

function check_URL() {
var url = "http://" + localStorage['t'] + ".somewhere.com";

$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
            "q=select%20*%20from%20html%20where%20url%3D%22"+
            encodeURIComponent(url)+
            "%22&format=xml'&callback=?",
    function(data){
      if(data.results[0]){
        console.log("yes");
      } 
      else { 
      console.log("no");
      alert(url + " is not a valid URL or is down.");

     }
    }
  );

};

それはまさに私が望むことをします(そして私はそれをここで見つけました!)。ただし、追加の URL も確認する必要があります。

.each でそれを行うにはどうすればよいですか? 私はこのことに慣れていないので、例が私の学習に役立ちます。

また、それが役立つ場合、例で使用されているドメイン「どこか」は常に同じになります。

更新:私を正しい方向に導くのを手伝ってくれたチアゴに感謝します。

function check_URL() {

var url = "http://" + localStorage['t'] + ".somewhere.com";
var url1 = "http://" + localStorage['t1'] + ".somewhere.com";
var url2 = "http://" + localStorage['t2'] + ".somewhere.com";
var url3 = "http://" + localStorage['t3'] + ".somewhere.com";

var urlArray = ['url', 'url1', 'url2','url3'];
$(urlArray).each(function (urlItem) {
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
            "q=select%20*%20from%20html%20where%20url%3D%22"+
            encodeURIComponent(urlItem)+
            "%22&format=xml'&callback=?",
    function(data){
      if(data.results[0]){
        console.log("yes");
      } 
      else { 
      console.log("no");
      alert(url + " is not a valid URL or is down.");

     }
    }
  );
});
};

これにより、検証されていない URL が検出されたように見えますが、アラートは壊れています。

アイデア?

ありがとう!

最終更新:以下に投稿された実用的なソリューション。

4

2 に答える 2

2
var urlArray = ['url', 'url1', 'url2'];
$(urlArray).each(function (urlItem) {
    //do your stuff with your urlItem string
});

http://api.jquery.com/each/

于 2012-07-22T23:06:11.387 に答える
0

これが私が使用した解決策です。@BaylorRae' のガイダンスに感謝します!

function check_URL() {

  var url = "http://" + localStorage['t'] + ".somewhere.com";
  var url1 = "http://" + localStorage['t1'] + ".somewhere.com";
  var url2 = "http://" + localStorage['t2'] + ".somewhere.com";
  var url3 = "http://" + localStorage['t3'] + ".somewhere.com";

  var urlArray = [url, url1, url2, url3],
      invalidUrls = [];

  $.each(urlArray, function (i, urlItem) {
    $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
    "q=select%20*%20from%20html%20where%20url%3D%22"+
    encodeURIComponent(urlItem)+
    "%22&format=xml'&callback=?",
    function(data){
      if(data.results[0]){
        console.log("yes");
      } 
      else { 
        invalidUrls.push(urlItem);
      }
    }
    );
  });

  return invalidUrls;
};
于 2012-07-24T02:35:21.717 に答える