2011-03-21 6 views
3

이봐, 이 코드를 살펴 :내가 누구이며, 내가 다루는 요소를 어떻게 알 수 있습니까?

$("li,p").click(function(){ 

    // how do I perform a test, and know wich Element it is ? 

    if(/* I'm a <li/> */) 
     // Do this for the <li/> 

    if(/* I'm a <p/> */) 
     // Do this for the <p/> 
}) 

고마워 ^^

+1

각기 다른 작업을 수행해야하는 경우 li 및 p에 대해 동일한 처리기를 사용해야하는 이유는 무엇입니까? – Belinda

+0

나는 그들 중 두 명에게 똑같은 지시 (실제로는 많이)를 수행한다. 하지만 다른 사람들과 약간의 차이가 있습니다. –

답변

6

하나의 옵션을 쓸 수 있습니다function

$("li,p").click(function(){   

    if($(this).is('li'))   
     // Do this for the <li/>  
    if($(this).is('p'))   
     // Do this for the <p/> 
}); 
+1

오, 이런, 나보다 빠르다. –

+0

사실, 나는 물어보기 전에 API에 대해 살펴 봤어야했다 : P.하지만 고마워. 너는 매우 도움이된다. –

3

당신은 this.nodeName 찾고 있습니다.

$("li,p").click(function(){ 

    // how do I do I perform a test, on wich Element it is ? 

    if($(this).is('li')) 
     // Do this for the <li/> 

    if($(this).is('p')) 
     // Do this for the <p/> 
}) 
1

Live Demo

$("li,p").click(function(){ 
    if(this.tagName.toLowerCase() == "p"){ 
     alert("PP!"); 
    }else if(this.tagName.toLowerCase() == "li"){ 
     alert("list!"); 
    } 
}) 
1

사용:

또한 is() 방법을 사용하는 것입니다

if (jQuery.nodeName(this, 'p')) 
관련 문제