2009-07-18 3 views
1

이 HTML 주어진 :버튼을 숨기려면 클래스를 어떻게 가져 옵니까?

<button id="buttonId1" class="hello universe"> 
<button id="buttonId2" class="hello world"> 

다음과 같이 올바른 방법은 무엇입니까 :

$("#buttonId1").click(function() 
{  
    alert($("#buttonId1").getClass()); 
} 

getClass 함수를 JQuery 또는 자바 스크립트 존재하지 않는 것으로 알고 있습니다. 그러나 그것을 근사화 할 방법이 있기를 희망합니다. 좀 더 복잡한 실제 문제가 있지만 간단한 질문으로 요약하기는 어렵지만 기본적으로 요소 클래스에 액세스 한 다음 해당 클래스 문자열을 사용하여 다음과 같은 추가 선택을 수행해야한다고 생각합니다.

$(("#buttonId1").getClass().filter("world")).hide(); 

아마 내가 제공 한 코드에서 buttonId2을 숨기는 더 간단한 방법이 있습니다. 제가 관심있는 부분은 수업 시간에 얻은 다음 그것을 더 많이 사용하는 것입니다. 내가 지금까지 생각해 낸 유일한 해결책은 hasClass 함수를 사용하여 가능한 모든 클래스를 검사하는 if/else 문의 긴 분기를 사용하는 것입니다. 그러나 이것은 매우 비 숙련 된 해결책입니다.

편집 : Paolo의 대답에 응답, 아마도 이런 식으로 button2를 숨기려면 작동합니다 :

$(("#buttonId1").attr('class')[0].filter("world")).hide(); 

답변

2

당신이 당신의 궁극적 인 목적은 실제로 당신이 달성하는 데 도움이 할 수있을 것입니다 무엇인지 설명하려고하면 내 생각은 당신의

$("#buttonId1").click(function() {  
    alert($(this).attr('class')); 
}); 

가 '안녕하세요'경고 및 다음과 같습니다 : - 최고 "의 jQuery 방법"의 궁극적 인 결과는없이, 그러나, 내가 말할 수있는 전부이다

$("#buttonId2").click(function() {  
    alert($(this).attr('class')); 
}); 

경고 '안녕하세요.'

(부작용으로 예제 에서처럼 선택기를 다시 실행하는 것은 좋지 않습니다. 당신은 단순히 현재 작용하고있는 요소)를 나타 내기 위해 $(this)을 사용할 수 있습니다

+0

내가있는 클래스 '안녕하세요'를 사용하려면 두 버튼에 의해 공유되어 button2를 숨 깁니다. 이 작업을 수행하려면 button2에는 있지만 'button1'에는없는 'world'클래스를 필터링해야합니다. $ (이것)에 관하여 끝을위한 감사합니다. –

+0

내가 틀렸다면 나를 수정 해주세요. 그러나 attr ('class')는 문자열이 아닌 배열을 반환 할 것입니다. 다음 두 클래스가 있습니다 :'[ "hello", "world"]'다음 질문은 하나? – DGM

+0

예, attr ('class') 배열의 첫 번째 요소를 검색 한 다음 필터에 두 번째 요소에 적용해야합니다. kludgy 소리가 난다. –

1

이 시도 :

$("#buttonId1").click(function() 
{ 
var classname = $("#buttonId1").attr("class") 
alert(classname); 
} 
0

참조 : element.className

$("#buttonId1").click(function() 
{  
    alert(document.getElementById("buttonId1").className); 
} 
관련 문제