jQuery查找选择器不选择数组项

时间:2013-03-21 13:11:47

标签: jquery

我正在尝试使用jQuery查找选择器访问照片列表,但由于某种原因,它似乎无法正常工作。我正在使用jQuery 1.8。

理想代码:

$(this).siblings(images_container).find(photo);

当前代码:

$(this).siblings(images_container).children().find(".photo");

当前代码也不起作用。选择孩子:

$(this).siblings(images_container).children()

album_id_3是$ this

HTML

<div class="photo_wrap">
  <a href="#" id="album_id_3">
    <div class="photo_img_wrap">
      <img src="/assets/img/user_images/2_4.jpg">
      <div class="album_photo_count">
        1
      </div>
    </div>
  </a>
  <div class="album_name">
    Untitled
  </div>
  <div style="display: none;" class="images_container">
    <div class="album_description_hidden">
      test
    </div>
    <div class="city_id">
      2
    </div>
    <div class="photo">
      <div class="desc">
      </div>
      <div class="image_id">
        4
      </div>
      <div class="name">
        /assets/img/user_images/2_4.jpg
      </div>
      <div class="status">
         1
      </div>
      <div class="time">
        1363005386
      </div>
    </div>
  </div>

返回

jQuery(div.album_description_hidden, div.city_id, div.photo)

但是当我尝试添加find来专门只用“.photo”抓取元素时,jQuery返回空。你知道为什么吗?

4 个答案:

答案 0 :(得分:1)

这是因为.find()只能在您搜索的元素的子元素中找到。因此,div.photo是您正在搜索的元素之一,这不会出现在结果中

答案 1 :(得分:0)

如果您正在搜索div.photo,它是图像容器的子项,那么您可以这样做..

$(this).siblings(images_container).children('div.photo')

无需使用find()

<强>更新

我想你错过了images_container中的课程

  $(this).siblings(".images_container").children('div.photo')

OR

你可以做到

 $(this).parent().find('div.photo'); //parent takes you to `photo_wrap` and find will search `div.photo` inside photo_wrap which it will find  

答案 2 :(得分:0)

我会做类似的事情:

$(".photo", $(this).parent())

jQuery函数可以传递第二个参数,它是一个Dom元素,或者是选择器来查找下面的元素。

答案 3 :(得分:0)

来自jQuery API文档::

  

描述:获取当前集合中每个元素的后代   匹配的元素,由选择器,jQuery对象或元素过滤。

因此,使用您的代码,您可以获得图像容器中正确的子代,然后使用.photo在其中搜索..您应该对子项本身进行过滤,而不是在其中。