1

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

理想代码:

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

当前代码:

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

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

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

专辑 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

4 回答 4

1

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

于 2013-03-21T13:14:58.787 回答
0

我会做类似的事情:

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

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

于 2013-03-21T13:17:26.067 回答
0

来自 jQuery API 文档::

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

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

于 2013-03-21T13:20:10.933 回答
0

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

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

无需使用find()

更新

我想你错过了 images_container 中的课程

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

或者

你可以做

 $(this).parent().find('div.photo'); //parent takes you to `photo_wrap` and find will search `div.photo` inside photo_wrap which it will find  
于 2013-03-21T13:14:14.567 回答