여러 개의 버튼을 선택하고 첫 번째 버튼을 클릭하고 싶습니다. 뭔가 같은 COALESCE
기능. 이것은 작동하지만 선택은 DOM 순서와 나의 선택 쿼리 순서를 다음과jQuery 다중 선택기 주문
$(".selector1, .selector2, .selector3").first().click();
:
나는이 시도. 어떠한 제안? 당신이이 라인을 따라 뭔가를해야합니다 있도록여러 개의 버튼을 선택하고 첫 번째 버튼을 클릭하고 싶습니다. 뭔가 같은 COALESCE
기능. 이것은 작동하지만 선택은 DOM 순서와 나의 선택 쿼리 순서를 다음과jQuery 다중 선택기 주문
$(".selector1, .selector2, .selector3").first().click();
:
나는이 시도. 어떠한 제안? 당신이이 라인을 따라 뭔가를해야합니다 있도록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 || $([]);
};
그리고 . 먼저 ([ '. selector1', '.selector2' '.selector3'])
$ .coalesce 호출()()을 클릭.; 각각의 요소
순회은()과 같이, 올바른 순서를 줄 것이다 :
var elms = [".selector1", ".selector2", ".selector3"];
$.each(elms, function(index, item) {
$(item).append('<br><br>This is item '+index);
});
당신은 요소의 배열은 다음을 연결하여 얻을 수 get()
방법을 사용할 수 있습니다, like :
$($(".selector1").get().concat($(".selector2").get(), $(".selector3").get())).first().click();
그리고 이것에 대해 어떻게 생각하십니까? 매우 아름답지는 않지만 작동합니다 ... – Tobia
매우 효과적 일지 모르지만 조만간 몇 개의 셀렉터를 추가 할 때 추한 것입니다. 위의 경우에 jQuery 확장을 생성하여 $ .coalesce ([selector. ','.selector2 '])와 같이 호출 할 수 있습니다. – Gerry