我想选择多个按钮并按顺序单击第一个。类似COALESCE
功能的东西。
我试过这个:
$(".selector1, .selector2, .selector3").first().click();
这可行,但选择遵循 DOM 顺序,而不是我的选择器查询顺序。有什么建议吗?
jQuery 总是以 DOM 顺序返回元素,因此您需要按照以下方式进行操作:
$.each(['.selector1', '.selector2', '.selector3'], function(i, selector) {
var res = $(selector);
if (res.length) {
res.first().click();
return false;
}
});
你可以像这样把它变成一个 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 || $([]);
};
然后打电话
$.coalesce(['.selector1', '.selector2', '.selector3']).first().click();
使用 each() 遍历元素将给出正确的顺序,如下所示:
var elms = [".selector1", ".selector2", ".selector3"];
$.each(elms, function(index, item) {
$(item).append('<br><br>This is item '+index);
});
您可以使用get()
方法获取元素数组,然后将它们连接起来,如下所示:
$($(".selector1").get().concat($(".selector2").get(), $(".selector3").get())).first().click();