我发现这段代码让我遍历一些xml元素:
$(somexml).find('company[id="'+id+'"] customers customer').each(function()
{
var $tmp = $(this);
alert($tmp.attr('customerid'));
});
似乎工作得很好。但由于我是Javascript / Jquery的新手我有一些问题:
我如何回应find()失败...没有匹配?
为什么tmp之前的'$'?为什么不只是 var tmp = $(this);
答案 0 :(得分:3)
1:each
返回被调用的对象,即$(x).each
返回$(x)
。因此,将每个结果分配给变量并检查其长度:
var obj = $(somexml).find(whatever).each(function() {
...
});
if(!obj.length)
nothing has been found...
2:$tmp
而不仅仅是tmp
是"hungarian"约定来表示jQuery对象。您无需使用它。
答案 1 :(得分: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);