2015-08-24 23 views
-1

我想更改類的子元素是「發發減圈」時,在標題用戶點擊如何訪問jquery中的子元素的類?

<div class="case-study-header"> 
<i class="fa fa-plus-circle"></i> Case Study Header </div> 

代碼

$('.case-study-header').click(function(){ 
      var state = $('.case-study-header').children().attr('class'); 
      state.replace("fa fa-plus-circle", "fa fa-minus-circle"); 
      }); 
+3

state.repalce:你可能是指「替換」? –

+0

請點擊這裏:https://jsfiddle.net/571ego8y/ –

回答

3

你有幾個問題:

  1. 變化repalcereplace
  2. 將整個邏輯改爲更簡單。

我猜你可能需要這樣:

$('.case-study-header').click(function(){ 
    var state = $('.case-study-header').children().attr('class'); 
    state.replace("fa fa-plus-circle", "fa fa-minus-circle"); 
}); 

代替上述情況,使用:

$('.case-study-header').click(function() { 
    $('.case-study-header').children().attr('class', 'fa fa-minus-circle');   
}); 
+0

你的聲譽得分足夠高,讓你知道在你應該關閉/刪除時回答重複的問題看起來不太好。儘管如此,我不能代表downvoter,但對我來說,它看起來像釣魚點。在已經有正確答案的情況下,所有其他人都應答。 –

+0

@mmmshuddup很好。我贊同你。將確保只回答非重複問題。謝謝。 –

+1

非常感謝 –

3
$('.case-study-header').click(function(){ 
    $('.case-study-header').children().attr('class', 'fa fa-minus-circle');   
    }); 

套裝它再一次,它自動覆蓋。

+0

非常感謝你 –

1

您可以使用.toggleClass()

$('.case-study-header').click(function() { 
 
    $(this).children('i').toggleClass('fa-plus-circle fa-minus-circle'); 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="case-study-header"> 
 
    <i class="fa fa-plus-circle"></i> Case Study Header 
 
</div>

1

您可以使用toggleClass方法如下:

$('.case-study-header').click(function(){ 
     var state = $('.case-study-header').children().toggleClass('class', 'fa-plus-circle fa-minus-circle');   
     }); 
1

嘗試這:選擇所有的孩子有fa-plus-circlefa-minus-circle和切換類。

$('.case-study-header').click(function(){ 
    var $children = $('.case-study-header').children('.fa-plus-circle, .fa-minus-circle'); 
    $children.toggleClass('class', 'fa-plus-circle fa-minus-circle');   
});