2014-01-29 4 views
1

이것은 내 코드입니다. <p> < =>$i=2 태그에서 클래스 이름을 제거하고 싶습니다. 위의 코드에서 모든 <p> 태그에서 "test2"라는 클래스 이름을 제거합니다. 클래스 이름이 2 개인 경우 특정 태그에서 클래스 이름을 제거하려면 어떻게해야합니까? 고마워?jquery와 두 번째 클래스 이름을 사용하여 어떻게 동적으로 클래스 이름을 제거 할 수 있습니까?

 <p class="test1 test2">text</p> 
     <p class="test1 test2">text2</p> 
     <p class="test1 test2">text3</p> 
     <p class="test1 test2">text4</p> 
     <p class="test1 test2">text5</p> 
<script type="text/javascript"> 
function test(){ 
    for (var i = 1; i <= 5; i++) { 
     if (i ==2){ 
       $(".test1").removeClass("test2"); 
     } 
    }; 
} 

+1

'$ (".test1") .eq (3) .removeClass ("test2");' –

+0

질문을 다시 읽었으며 혼란스러워졌습니다. 'test2' 클래스를 제거 하시겠습니까? 두 번째 요소, 또는'test2' 클래스를 제거하는 것입니다. – Loupax

+0

jquery – Chester

답변

1

가 수행

,
+0

의 두 번째 요소에서 클래스 이름 test1을 사용하여 두 번째 요소에서 test2를 제거하려고합니다. 이것이 저에게 적합합니다. 하지만 eq() 란 무엇인지 설명해 주시겠습니까? – Chester

+0

jquery의 eq() selector는 색인을 지정하여 DOM 요소를 찾는 데 사용됩니다. 두 x 째 요소가 필요하므로 색인을 검색하려면 색인을 1로 지정해야합니다.자세한 내용은 다음 링크를 참조하십시오. - http://api.jquery.com/eq-selector/ – Balachandran

0

단순히 두 클래스 인 제거 무엇

$("p").removeClass().addClass("test2"); 

같은 것을 시도하고 U이

0

을 유지하려는 하나를 추가, 나는 당신을 위해 그것을 해결 :

<p class="test1 test2">text</p> 
<p class="test1 test2">text2</p> 
<p class="test1 test2">text3</p> 
<p class="test1 test2">text4</p> 
<p class="test1 test2">text5</p> 
<script type="text/javascript"> 
    $(".test1:nth-child(2)").removeClass("test2"); 
</script> 

무엇이 잘못 것은, 당신이 propably 내부 코드가

자바 스크립트가 <script> HTML 태그에 포함되어야하는 PHP

것처럼 JS 코드를 실행하려고하고 브라우저가

또한 그것을받는 순간 실행되는 것이 었습니다 당신의 루프는 'test1 클래스의 모든 요소를 ​​가져 와서 test2 클래스를 제거합니다'라는 의미 였으므로 코드가 실행되는 루프의 부분이 무엇이든 관계없이 .test1 요소는 모두 .test2 클래스를 잃게됩니다.

jquery의 일부는 '.test1 요소를 모두 가져오고 부모의 두 번째 자식 인 경우에만'을 의미합니다.

0

는 다음과 같은 스크립트를 작성할 수 있습니다

;!(function ($) { 
$.fn.classes = function (callback) { 
    var classes = []; 
    $.each(this, function (i, v) { 
     var splitClassName = v.className.split(/\s+/); 
     for (var j in splitClassName) { 
      var className = splitClassName[j]; 
      if (-1 === classes.indexOf(className)) { 
       classes.push(className); 
      } 
     } 
    }); 
    if ('function' === typeof callback) { 
     for (var i in classes) { 
      callback(classes[i]); 
     } 
    } 
    return classes; 
}; 
})(jQuery); 

을 한 후이

$('div').classes(); 

그것은 요소에 할당 된 클래스의 컬렉션을 반환합니다 사용합니다.

source

1

당신이 시도 할 수, 당신은 당신의 <script>

$(function(){ 
$("p").each(function(index){  
    console.log(index); 
    if(index==1){ 
     $(this).removeClass('test2'); 
    } 
    });  
}); 

데모 내부에 하나 아래 다음과 같습니다http://jsfiddle.net/D5JwH/1/

0
<p class="test1 test2">text</p> 
<p class="test1 test2">text2</p> 
<p class="test1 test2">text3</p> 
<p class="test1 test2">text4</p> 
<p class="test1 test2">text5</p> 
<?php 
var i=1; 
$('p').each(function(index){ 
if (index == 2){ 
      $(this).removeClass("test2"); 
     } 
i=i+1; 
}); 
?> 
관련 문제