2010-04-25 4 views
1

I 범위의 IT 전반에 걸쳐 뿌려 생성 된 클래스 이름과 텍스트의 큰 블록을 가지고 생성 된 HTML 파일이 : 내 스팬의 위에 마우스를 올려 경우 지금jQuery를 사용하여 마우스 위로 마우스를 가져 가면 클래스를 공유하는 모든 요소에 테두리를 추가 할 수 있습니까?

This <span class="21232">an example</span> of what <span class="332423"> 
I'm talking</span> about. There are span's with <span class="21232"> generated 
ID's </span>. 

, 내가 추구하고있는 무슨이이다 , 해당 범위뿐만 아니라 같은 클래스를 공유하는 다른 모든 범위에 테두리를 추가합니다.

그래서 첫 번째 스팬 위로 마우스를 가져 가면 첫 번째 스팬과 세 번째 스팬이 같은 클래스 이름을 공유하기 때문에 "예제"와 "생성 된 ID"둘레에 테두리가 표시됩니다.

나는 똑 바른 CSS에서 그것을 할 수 없다고 꽤 확신했다. jQuery를 사용하여이 작업을 수행 할 수 있습니까? 그렇다면 가능한 한 간단하게이 작업을 수행 할 수있는 올바른 방향으로 누군가를 안내 할 수 있습니까?

답변

3
$('p#experiment > span[class]').hover(function(){ 
    $('.' + $(this).attr('class')).css('border', '1px solid red') 
}, 
function(){ 
    $('.' + $(this).attr('class')).css('border', 'none') 
}) 

http://jsfiddle.net/RE3ya/1/

+0

@meo : 나는 번호가 유효한 클래스 이름입니다 생각합니다. 필자가 아는 한, 클래스에 대해서는 '무언가가 움직인다'는 것이다. (예외는 공백으로 구분된다. – user113716

+1

'class = .. '대신 jquery를 사용하여 클래스를 선택할 때 클래스에'.' 표기법을 사용하는 것이 더 좋습니다. –

+0

오른쪽에 정의 된 클래스가 둘 이상있는 경우에도 작동합니다. , 이것은 단지 신분증에 대한 것입니다. 내 awnser를 정정했습니다. – meo

2
$('span[class]').hover(
function() { 
    $('.' + $(this).attr('class')).css('border','1px solid purple'); 
}, 
function() { 
    $('.' + $(this).attr('class')).css('border',''); 
} 
) 
+0

일부 포인트를 남겨주세요 : P하지만 +1 스팬 [클래스] – meo

+0

나는 국경 규칙이 설정된 클래스를 추가/제거하는 것이 더 좋을 것이라고 생각합니다. 마주 치면 경계가 원래 값으로 돌아갑니다. –

+1

@Gaby : js에 스타일이 분산되어 있지 않고 클래스를 추가/제거하는 것이 더 낫다고 동의하지만 설정 값이 지워집니다. 아니면 니가 의미하는 것을 놓치고 있니? – user113716

관련 문제