jQuery.next()返回空对象

时间:2014-08-06 07:51:14

标签: javascript jquery next siblings

我正试图在图片后获得下一个div:

<a rel="nofollow" href="http://localhost:8046/file.htm" class="imgbox">
    <img src="http://www.domain.tld/fm/912/image.png" class="" id="img-1303122" style="max-width:560px;" width="700" border="0" alt="title="/>
</a>
<div id="lic-img-1303122" class="licence-wrapper" style="display:none;">
    <div class="licence-spacer"></div>
    <div class="licence">&copy; copyright<br /></div>
</div>

我的jQuery代码如下:

console.log($("#img-1303122").nextAll(".licence-wrapper"));
Object { length: 0, prevObject: Object, context: HTMLDocument → JSUmstellung, selector: "#img-1303122.nextAll(.licence-wrapper)" }

那么,为什么我没有得到任何结果?我已经尝试过.next(),. closest()和.siblings(),但都没有。

5 个答案:

答案 0 :(得分:2)

尝试: -

console.log($("#img-1303122").parent().nextAll(".licence-wrapper"));

Demo

答案 1 :(得分:1)

试试这个:你试图直接找到下一个元素到图像,但实际上div存在于锚标记旁边。因此,请使用class="imgbox"然后.nextAll

获取父锚标记
console.log($("#img-1303122").closest('.imgbox').nextAll(".licence-wrapper").length);

答案 2 :(得分:0)

#img-1303122附近没有其他div,可能你的意思是lic-img-1303122,下一个只查找兄弟姐妹,来自docs

  

获取匹配元素集中每个元素的紧随其后的兄弟。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。

答案 3 :(得分:0)

.nextAll()获取匹配元素集中每个元素的所有后续兄弟,可选择由选择器过滤。

所以你需要试试这个:

$("#img-1303122").parent().nextAll(".licence-wrapper")

答案 4 :(得分:0)

嘿,你也可以通过这个获得所有div

alert($("#img-1303122").parent().parent().find(".licence-wrapper").length);

Demo