【问题标题】:jQuery.next() returns empty objectjQuery.next() 返回空对象
【发布时间】:2014-09-29 01:40:57
【问题描述】:

我正在尝试获取图像之后的下一个 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(),但它们都不起作用。

【问题讨论】:

    标签: javascript jquery next siblings


    【解决方案1】:

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

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

    Demo

    【讨论】:

      【解决方案2】:

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

      所以你需要试试这个:

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

      【讨论】:

        【解决方案3】:

        试试这个:你试图直接找到图像的下一个元素,但实际上 div 存在于锚标记旁边。所以用class="imgbox"获取父锚标签,然后.nextAll

        console.log($("#img-1303122").closest('.imgbox').nextAll(".licence-wrapper").length);
        

        【讨论】:

        • 谢谢,你的回答也有效,不过 Mohit 的要容易一些
        【解决方案4】:

        试试:-

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

        Demo

        【讨论】:

        • 完美运行,谢谢!当我被允许时会接受!
        【解决方案5】:

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

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

        【讨论】:

        • 那么,next 只是查找相同类型的元素?
        • 来自描述Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.,所以它找到了兄弟姐妹,但是你的&lt;img&gt;标签被包裹在&lt;a&gt;中并且没有兄弟姐妹。
        • @user2225581 next() 获取同一父元素下的下一个元素。 img 是您父母的唯一孩子,因此没有下一个。如果要获取下一个 div,则必须使用图像的父级作为选择器
        • 啊,好吧。不知道。感谢您的解释。
        猜你喜欢
        • 2015-02-11
        • 2020-12-21
        • 2019-04-08
        • 2012-02-22
        • 2019-07-17
        • 2018-08-03
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多