在将值传递给数组Jquery之前检查元素是否存在

时间:2011-11-25 16:37:25

标签: jquery

在使用jquery将值传递给数组之前,有没有办法检查元素是否存在。

例如,我有以下代码:

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

传递并存储项目列表中的值,并告诉我它们的href值是什么。

我目前遇到的问题是,如果我的列表中的第2项不包含链接,则在第2位传递的值实际上是第3项中的值,而不是2。

我想要做的是查看是否有一个a:首先在标题容器内部,如果没有将值传递给数组,我可以随后进行检查。为了保留数组中的项目列表与列表中的项目列表相同。

有什么想法吗?

非常感谢

修改 感谢您的建议,虽然他们没有直接工作,但他们确实让我的大脑参与了我想要做的事情 - 感冒编码,并不总是很好的组合。

无论如何,我的解决方案如下:

 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');
      }
  });

再次感谢!

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找类似的东西

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

答案 1 :(得分:0)

试试这个。

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