0

いくつかの xml 要素をトラバースできる次のコードを見つけました。

$(somexml).find('company[id="'+id+'"] customers customer').each(function()
{
     var $tmp = $(this);
     alert($tmp.attr('customerid'));
});

かなりうまくいくようです。しかし、私は Javascript/Jquery の初心者なので、いくつか質問があります。

  1. find() が失敗した場合にどのように対応すればよいですか? 一致するものがありませんか?

  2. tmp の前に「$」が付いているのはなぜですか? var tmp = $(this);だけではない理由

4

2 に答える 2

3

1:each呼び出されたオブジェクト、つまり return を$(x).each返します$(x)。したがって、それぞれの結果を変数に代入し、その長さを確認します。

var obj = $(somexml).find(whatever).each(function() {
    ...
});
if(!obj.length)
     nothing has been found...

2: jQuery オブジェクトを表すための"ハンガリー語"$tmpの慣例です。使用する必要はありません。tmp

于 2012-11-02T10:11:09.537 に答える
1

find() が失敗した場合にどのように対応すればよいですか? 一致するものがありませんか?

結果をいくつかの変数に割り当てます

result = $(somexml).find('company[id="'+id+'"] customers customer');

if(result.length > 0)
{
   result.each(function()
   {
       var $tmp = $(this);
       alert($tmp.attr('customerid'));
   });    
}    
else
{
   alert("No results");
}

tmp の前に「$」が付いているのはなぜですか? var tmp = $(this); だけではない理由

You do not need to use $ before tmp. using $ 

var tmp = $(this); 
于 2012-11-02T09:58:50.053 に答える