2012-08-15 5 views
1
나는이 (가) JS 기능을 발사하려면 다음을 사용

:자바 스크립트 "또는"문

이제

$(document).ready(function() { 
    $('.gl a').do_this({ 

그래서 DIV 클래스 .gl 내의 링크 기능은 do_this 활성화 .. 간단하게, 나는 또한 발사 할

($('.gl a') OR $('.gm a')).do_this({ 

모든 조합을 시도하지만, 아직 작동하지 않는, 또는 단순히 다른 클래스의 전체를 복제해야합니까 : 다른 사업부의 링크 같은 기능도 내가 좋아하는 뭔가를 할 수 있습니까? 그래서 같은

+0

하나 * 또는 * 다른 것에 영향을주고 싶지만 * 둘 다 사용하지 않습니까? –

+2

-1 개를 주셔서 감사합니다. 왜 그럴까요? 정말 배우고 시도하려는 사람들의 욕구를 증폭시킵니다! –

+1

음, 나는 그 주석에 대해 통보를 받았기 때문에 나는 답할 것입니다 : 아래쪽 투표는 내게 아니었지만, 물었을 때 당신의 의도에 대한 명확한 설명없이 애매한 질문을했습니다. 귀하는 또한 귀하의 질문에 귀하가 지정한 작은 기준 ('OR', 허용 된 대답은 확실히 'AND')을 충족시키지 못하는 답을 수락했습니다. 나는 왜 당신이 투표에 실패했는지 말할 수는 없지만, 앞으로 질문하기 전에 좀 더 연구하려고 제안 할 것입니다. 질문하거나 학습을 멈추지 말고 몇 가지 연구를 시도하고 설명하고 시도한 것과 실패한 것을 설명하십시오. –

답변

7

사용 Multiple selectors : 둘 중 하나가 존재, 또는 양쪽 모두가있는 경우 경우

$('.gl a, .gm a'); 

이 작동합니다; 나는 이것이 당신이 원하는 것이라고 생각하고 있습니다. 셀렉터 $('.gl a') 요소와의 비어 있지 않은 컬렉션을 반환

var groupToAffect = $('.gl a').length ? $('.gl a') : $('.gm a'); 
groupToAffect.do_this(); 

이 테스트를 :

+0

은 * AND * – jAndy

+0

이 될 것입니다. 엄격히 말해서 '또는'(그러나 OP가 원하는 것이 확실하지 않습니다)입니다. –

+1

OP가 배타적 OR을 원하지 않는다면, 둘 중 하나 또는 둘 모두가 존재할 때 작동 할 것입니다. –

0

나는 당신이 진정으로 배타적 OR를 의미하는 경우, 영향을 미치는 특정 그룹을 식별하는 원을 사용할 수도있을 것 같군요 포함되어있는 경우 해당 셀렉터에서 반환 한 요소를 groupToAffect 변수에 저장합니다. 0 (거짓) 요소를 반환하면 선택자 $('.gm a')에 의해 반환 된 요소가 해당 변수에 할당됩니다. 이 파일은 do_this() 메소드/플러그인과 함께 사용됩니다.

+0

당신은'$ ('.gl a') 길이라고 생각하십니까? $ ('.gl a') : $ ('.gm a'); ' – Nimphious

+0

@Nimphious, 정말로 내가 그랬다! 왜 다시 안녕, 영어; 꽤 오랜 시간이 ...=/ –

+0

아, 두 번째 조회를 피하려면 다음과 같이해야합니다. 'var gl = $ ('.gl a '), group = gl.length? gl : $ (.gm a ');'많이 사용하고 성능이 중요 할 때 유용 할 수 있습니다. – Nimphious

0

jquery 객체 배열은 concat와 함께 그룹화 할 수 있습니다. 그런 다음 모든 객체를 반복합니다.

$([].concat($('.gl a'),$('.gm a'))).each(function(index){ 
    this.do_this({ //... 
});