【问题标题】:jquery selector for previous instance of a class一个类的前一个实例的 jquery 选择器
【发布时间】:2011-04-25 11:58:31
【问题描述】:

在按钮单击事件上,我想读取基于某个类的文本框的值。页面上有多个带有该类的文本框,所以我想抓住按钮之前的那个。注意:这不是直接在之前,但我希望它搜索页面直到找到实例。

我认为Prev() 会这样做,但它似乎不起作用

【问题讨论】:

  • 如果你在第一类中使用另一个选择器会怎样?
  • 你试过prevAll()吗?

标签: jquery jquery-selectors css-selectors


【解决方案1】:
$(this).prevAll('.class:first');

使用 prevAll:first 过滤器

【讨论】:

  • 这似乎不起作用。 .当我在萤火虫中查看此选择器的结果时,我得到了 jquery()
  • @ooo 你应该得到 jquery 作为回报。 jQuery 总是给你包装好的 jQuery 对象。看看这个小提琴:jsfiddle.net/H32gk
【解决方案2】:

假设你有未知的嵌套并且文本框是不是兄弟,试试这个:

$(":button").click(function() {
    var allElem = $("*");
    var buttonIndex = allElem.index(this);
    var nearest;
    $(".text").each(function(i, elm) {
        var index = allElem.index(elm);
        if (buttonIndex > index) {
            nearest = elm;
        }
    });
    alert($(nearest).val());
});

这依赖于元素的索引,并找到离您的按钮最近的那个。我确信有一些很棒的选择器,希望有人会发布它:)

Code example on jsfiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2015-12-07
    • 2012-01-21
    • 2012-09-10
    • 1970-01-01
    • 2011-09-30
    • 2019-12-03
    相关资源
    最近更新 更多