我正在尝试使用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返回空。你知道为什么吗?
答案 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
在其中搜索..您应该对子项本身进行过滤,而不是在其中。