2016-08-13 41 views
0

如何移除活動類。下面是我的代碼,第一個我覺得ID標籤,則class但是這個代碼不工作:如何在javascript中移除標籤子類的類別

function myFunction() { 
 
    var element1 = document.getElementById('grid3d'); 
 
    var remove_class = 'active'; 
 

 
    element1.className = element1.className.replace(' ' + remove_class, '').replace(remove_class, ''); 
 
}
.active { 
 
    color: red; 
 
}
<div id="grid3d">Hello World 
 

 
    <figure ">Click the button to remove the class attribute from the h1 element.</figure> 
 
    
 
    <figure class="active ">Click the button to remove the class attribute from the h1 element.</figure> 
 
    
 
    <figure>Click the button to remove the class attribute from the h1 element.</figure> 
 
    </div> 
 
    <button onclick="myFunction() ">Try it</button>

+1

使用jquery它只有兩行代碼// ex $(「element1」)。removeClass(「active」); –

+0

我已更新我的代碼 –

+0

給你的代碼 –

回答

3

試試這個片斷

function myFunction() { 
 
    var fig = document.querySelectorAll('figure'); 
 

 
    for (var i = 0; i < fig.length; i++) { 
 
    if (fig[i].className == "active") { 
 
     fig[i].className = ""; 
 
    } 
 
    } 
 

 
}
.active { 
 
    color: purple; 
 
}
<div id="grid3d">Hello World 
 

 
    <figure>Click the button to remove the class attribute from the h1 element.</figure> 
 

 
    <figure class="active">Click the button to remove the class attribute from the h1 element.</figure> 
 

 
    <figure>Click the button to remove the class attribute from the h1 element.</figure> 
 
</div> 
 
<button onclick="myFunction()">Try it</button>

+0

偉大的工程我喜歡這個代碼測試它與我的所有條件 –

+0

我還有一個問題,你怎麼能得到當前的數字標籤,它有活動類的孩子 –

+0

如果你只有一個子元素'fig [i] .children [0] .className' – cheralathan

0

如果我理解正確的話,你想刪除第二<figure>的ID。您可以使用JS方法removeAttribute()。它使您能夠從元素標籤中刪除任何屬性。

var removeClass = function(selector) { 
 
    var el = document.querySelector(selector); 
 
    el.removeAttribute('id'); 
 
}
#active { 
 
    color: red; 
 
}
<div>Remove #active! from the second figure tag 
 

 
    <figure>Click the button to remove the class attribute from the h1 element.</figure> 
 

 
    <figure id="active">Click the button to remove the class attribute from the h1 element.</figure> 
 

 
    <figure>Click the button to remove the class attribute from the h1 element.</figure> 
 
</div> 
 
<button onclick="removeClass('#active')">Try it</button>

+0

你已經完全改變我的狀況,因爲我提到這是一個插件任何其他解決此問題與我的代碼相同 –

+0

你需要工作一點,而不是要求更正代碼。你想刪除一個特定的元素或所有具有.active的元素嗎? – Ivan

1

,你可以嘗試使用classList.remove()圖形元素上功能

function myFunction() { 
    var element1 = document.getElementById('grid3d'), 
     remove_class = 'active', 
     figureEl = element1.querySelector('.' + remove_class); 


    figureEl.className.remove(remove_class); 
} 

我希望它能起作用。

+0

對我不起作用 – Ivan

+0

我還有一個問題,我們如何才能獲得當前具有活動類的數字標記的子節點 - –

+0

以類似的方式,如下所示: el.querySelector('figure.active'); // el可以是數字元素 –

相關問題