Jquery - 如果.find什么都不返回

时间:2012-09-21 09:59:53

标签: jquery xml

我有以下XML例如:

<?xml version="1.0"?>
    <extraslist>
        <extra 
            id="0"
            enabled="1"
            quantityavailable="2"
            displayindex="1">
            <extraname>Example 1</extraname>
            <extradesc>Example 1 Description</extradesc>
        </extra>
        <extra 
            id="1"
            enabled="1"
            displayindex="2">
            <extraname>Example 2</extraname>
            <extradesc>Description 2</extradesc>
        </extra>
    </extraslist>

一个.find函数,可以找到每个额外的并在网页上显示结果。

$(xmlExtras).find('extra').each(function(){

});

我如何编写一个函数,以便所有'extras'= enabled =“0”来做某事......

4 个答案:

答案 0 :(得分:11)

正确阅读问题后更新

您可以使用额外的选择器检查find结果的长度:

var $enabledExtras = $(xmlExtras).find('extra[enabled="1"]');

if ($enabledExtras.length == 0) {
    //do something
}

Working jsFiddle

答案 1 :(得分:0)

你应该试试..

$(xmlExtras).find('extra').each(function(i){
    if($(this).find('enabled) == 0)
    {
       do something...
    }
    else
    {

    }

});

其他信息:您应该尝试使用JSON。

答案 2 :(得分:0)

嘿,我接到电话,但我在这里得到了这个例子:http://jsfiddle.net/H3eFM/1/

答案 3 :(得分:0)

我希望以下代码可以帮助您

var xmlText='<?xml version="1.0"?><extraslist><extra id="0" enabled="1" quantityavailable="2" displayindex="1"><extraname>Example 1</extraname></extra></extraslist>';

xmlDoc = $.parseXML(xmlText);

$(xmlDoc).find('extra').each(function(){
//All your code goes here
});