Jquery xml标记是否存在

时间:2014-07-19 16:22:08

标签: javascript jquery

我正在使用Jquery并试图找出下面的标签是否存在

if(feed.mediaGroups[0].contents[0].thumbnails[0].url !== 'undefined') {
                        thumb = feed.mediaGroups[0].contents[0].thumbnails[0].url;
                    } 

但这是崩溃的说法

TypeError: feed.mediaGroups is undefined

任何想法,我都能让它发挥作用。

谢谢

1 个答案:

答案 0 :(得分:1)

你正在检查链中的一个属性,但显然feed对象甚至没有mediaGroups属性,所以你应该从那里开始

if(
    'mediaGroups' in feed &&
    Array.isArray(feed.mediaGroups) &&
    'contents' in feed.mediaGroups[0] &&
    Array.isArray(feed.mediaGroups[0].contents) &&
    'thumbnails' in feed.mediaGroups[0].contents[0] &&
    Array.isArray(feed.mediaGroups[0].contents[0].thumbnails) &&
    'url' in feed.mediaGroups[0].contents[0].thumbnails[0] &&
    typeof feed.mediaGroups[0].contents[0].thumbnails[0].url !== 'undefined'
) {
    thumb = feed.mediaGroups[0].contents[0].thumbnails[0].url;
}

你可以看到这真的很乏味,我们甚至没有检查所有内容,我们仍然可以检查数组是否在索引0等处有一个值,所以知道会发生什么是非常有帮助的,你不应该以这种方式检查每一个房产