【问题标题】:How to get the other image using jQuery如何使用 jQuery 获取其他图像
【发布时间】:2009-02-20 03:46:23
【问题描述】:

我的 DOM 如下所示:

<div class="stuff">
  <a href="#"><img src=""></a> <b>hello</b>
  <a href="#"><img src=""></a>
</div>

有时我在第一张图片上有参考,有时在第二张图片上有参考。

  1. 当我使用 $() 获得第一张图片时,如何选择第二张图片?
  2. 当我使用 $() 获得第二张图片时,如何选择第一张图片?

【问题讨论】:

  • 你能澄清一下吗?您示例中的 $(image1) 不会选择任何内容。
  • 我的意思是我有一个对图像的引用(当它被点击时)

标签: jquery


【解决方案1】:

鉴于myImage 作为其中一张图片的引用,$(".stuff img").not(myImage) 应该为您提供另一张(或其他,如果您有两张以上的图片)。

【讨论】:

    【解决方案2】:

    你可以在这两种情况下得到另一个:

    $(this).parent().siblings().children("img").remove(this);
    

    或者只是:

    $("div.stuff img").remove(this);
    

    【讨论】:

    • 我删除了我的答案,因为这是同一件事,我误读了带有 id 的示例 :)... 我个人更喜欢 .not(selector_or_element) 到 .remove 因为 remove 感觉像是DOM 操纵器。
    【解决方案3】:

    看看jQuery eq selector

    var first = $('.stuff img:eq(0)');
    var second = $('.stuff img:eq(1)');
    

    【讨论】:

      【解决方案4】:
      1. .parent().nextAll("a").children("img")
      2. .parent().prevAll("a").children("img")

      这是一种相当不雅的方式来完成它,但它对于您要查找的内容非常明确 - 几乎就像 XPath。一旦开始处理两个以上的链接,您可能会发现像 Ben Alpert 或 cletus 所描述的技术更灵活(较少依赖于严格的层次结构)。

      【讨论】:

      • 是的。但是,他只处理 5 个元素;理想不会让你买太多。不过我喜欢你的回答。
      【解决方案5】:

      你应该能够使用类似的东西

      $('DIV.stuff:first-child')
      $('DIV.stuff:nth-child(3)'
      

      这将返回可用于访问图像的锚标记。第二个是 nth-child(3) 因为 nth-child(2) 将返回粗体标签。理想的方法是对每个图像或锚点应用一个类或 id。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-13
        • 2016-11-04
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        相关资源
        最近更新 更多