jQuery多选择器命令

Tob*_*bia 4 jquery coalesce selector

我想选择多个按钮并按顺序点击第一个按钮.像COALESCE功能一样的东西.

我试过这个:

$(".selector1, .selector2, .selector3").first().click();
Run Code Online (Sandbox Code Playgroud)

这可以工作,但选择遵循DOM顺序而不是我的选择器查询顺序.有什么建议吗?

Ger*_*rry 5

jQuery总是返回DOM顺序的元素,所以你需要沿着这些方向做一些事情:

$.each(['.selector1', '.selector2', '.selector3'], function(i, selector) {
    var res = $(selector);
    if (res.length) {
        res.first().click();
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

你可能会把它变成像这样的jQuery扩展:

$.coalesce = function(selectors) {
    var match;
    var selector = $.each(selectors, function(i, selector) {
        var res = $(selector);
        if (res.length) {
            match = res;
            return false;
        }
    });
    return match || $([]);
};
Run Code Online (Sandbox Code Playgroud)

然后打电话

$ .coalesce(['.selector1','.selector2','.selector3']).first().click();