【问题标题】:.index() only for one instance of class [closed].index() 仅适用于类的一个实例 [关闭]
【发布时间】:2013-08-02 19:54:51
【问题描述】:

我在 jQuery 中遇到了 .index() 函数的问题。

DOM 概要:

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

<div class="one">
    <div class="two">
        <div class="three"></div>
        <div class="three"></div>
        <div class="three"></div>
    </div>
    <div class="threeB"></div>
    <div class="threeB"></div>
    <div class="threeB"></div>
</div>

根据用户点击two中的three中的哪一个,显示threeB之一。我想用.index() 函数来做到这一点,但是除了第一个函数之外,它都失败了。在第二个 one 类中,两个 threes 具有索引 3 和 4(而不是所需的 0 和 1)。另一方面,threeBs 的 .eq() 似乎可以正常工作。

有什么巧妙的方法可以解决这个问题,而不必计算有问题的div 之前有多少threes?

【问题讨论】:

  • 您为什么不向我们展示您正在使用的选择器并告诉我们您实际上尝试选择什么?
  • 你标记的 jquery 代码在哪里,但没有 jquery

标签: javascript jquery html


【解决方案1】:

它是这样工作的:

$('.three').click(function(){
    $(this).parent().parent().find('.threeB').eq($(this).index())
        .css('background','green');
});

在这里查看:jsFiddle

【讨论】:

    猜你喜欢
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多