2011-11-25 93 views
0

有没有一种方法可以在使用jquery将值传递给数组之前检查元素是否存在。在将值传递给数组之前检查元素是否存在jquery

例如,我有以下代码:

hyperlinks = new Array(); 
    $(slideshowThumbs).find('.caption').find('a:first').each(function() { 
      hyperlinks.push($(this).attr('href')); 
    }); 

其中通过,并从项目列表存储的值,并告诉我他们的href的值是什么。

我现在的问题是,如果我的列表中的项目2不包含链接,则在位置2传递的值实际上是来自项目3而不是2的值。

我想要做的是看看是否有一个:第一个内部的标题容器,并且如果没有传递一个值到数组,我可以稍后做一个检查。以便保留数组中项目的列表,与列表中的项目列表相同。

任何想法?

非常感谢

编辑: 感谢您的建议,虽然他们没有工作直客,他们没有让我的大脑有什么,我试图做搞 - 感冒编码,不总是一个很好的组合。

在任何情况下我的解决方案如下:

hyperlinks = new Array(); 
$(slideshowThumbs).find('.caption').each(function() { 
     var elemExists = $(this).find('a:first'); 
     if (elemExists) { 
      hyperlinks.push($(this).find('a:first').attr('href')); 
     } 
     else { 
      hyperlinks.push('noLink'); 
     } 
    }); 

再次感谢!

回答

1

我认为你在寻找这样的事情

if ($(this).attr('href') != '') 
    hyperlinks.push($(this).attr('href')); 
else 
    hyperlinks.push("no_link");
0

试试这个。

hyperlinks = new Array(); 
    $(slideshowThumbs).find('.caption').find('a:first').each(function() { 
      if ($(this).attr('href')) { 
       // attribute exists 
       hyperlinks.push($(this).attr('href')); 
      } 
    });