2008-11-04 69 views
172

我正在使用jQuery並查看是否有簡單的方法來確定元素是否具有與其關聯的特定CSS類。確定元素是否具有jQuery的CSS類

我有元素的id和我正在尋找的CSS類。我只需要能夠在if語句中根據元素上該類的存在進行比較。

+0

如果你想沒有jQuery,[「hasClass」與JavaScript?](http://stackoverflow.com/q/5085567/1529630) – Oriol 2016-06-12 17:23:54

回答

238

使用hasClass方法:

jQueryCollection.hasClass(className); 

$(selector).hasClass(className); 

的說法是(顯然)表示正在檢查的類的字符串,它返回一個布爾值(所以也沒有像大多數jQuery方法一樣支持鏈接)。

注:如果傳遞包含空格一個className的說法,將字面上對集合的元素的className字符串匹配。所以,如果,例如,你有一個元素,

<span class="foo bar" /> 

,那麼這將返回true

$('span').hasClass('foo bar') 

,這些將返回false

$('span').hasClass('bar foo') 
$('span').hasClass('foo bar') 
+7

沒錯。文檔在這裏:http://docs.jquery.com/Traversing/hasClass – 2008-11-04 20:14:23

+4

我不同意。文檔按類別組織,但您也可以按字母順序輕鬆查看所有方法。每件事都有一個例子,評論部分通常會清除任何被遺漏的東西。 jQuery有很多優秀的功能和實用程序,需要一些學習來發現它們。 -EDIT-這很有道理,這絕對是一個很長的路要走。 – Trafalmadorian 2010-05-20 05:19:54

+1

@Trafalmadorian,我已經刪除了我原來的評論,因爲情況已經改變。最初您在-EDIT之前發佈了所有內容,並且我回復說我對文檔質量的評論不再相關,而是提及他們以前的(MediaWiki)系統。然後,您刪除了以前的評論並放置了-EDIT-。我希望這個清理工作對未來的讀者來說更清楚一點,不會讓人誤解。 – eyelidlessness 2010-05-20 18:05:01

20
FAQ

elem = $("#elemid"); 
if (elem.is (".class")) { 
    // whatever 
} 

或:

elem = $("#elemid"); 
if (elem.hasClass ("class")) { 
    // whatever 
} 
11

至於否定,如果你想知道,如果一個元素有沒有一個類,你可以簡單地做馬克說。

if (!currentPage.parent().hasClass('home')) { do what you want } 
3

沒有jQuery的:

var hasclass=!!(' '+elem.className+' ').indexOf(' check_class ')+1; 

或者:

function hasClass(e,c){ 
    return e&&(e instanceof HTMLElement)&&!!((' '+e.className+' ').indexOf(' '+c+' ')+1); 
} 
/*example of usage*/ 
var has_class_medium=hasClass(document.getElementsByTagName('input')[0],'medium'); 

這是遠遠快於jQuery的!

0
$('.segment-name').click(function() { 
    if($(this).hasClass('segment-a')){ 
     //class exist 
    } 
}); 
0

在我的情況,我用了「是」一個jQuery的功能,我有加,我一直在尋找的這些中間一個特定的類不同的CSS類的一個HTML元素,所以我用了「是一個很好的替代方法來檢查一個動態添加到一個html元素的類,它已經有了其他的css類,這是另一個好的選擇。

簡單的例子:

<!--element html--> 
<nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> 

<!--jQuery "is"--> 
$('#menu').is('.cbp-spmenu-open'); 

先進例如:

<!--element html--> 
    <nav class="cbp-spmenu cbp-spmenu-horizontal cbp-spmenu-bottom cbp-spmenu-open" id="menu">somethings here... </nav> 

    <!--jQuery "is"--> 
    if($('#menu').is('.cbp-spmenu-bottom.cbp-spmenu-open')){ 
     $("#menu").show(); 
    } 
0

在幫助人誰在這裏的土地,但實際上是在尋找這樣做的jQuery的免費方式的利益:

element.classList.contains('your-class-name') 
相關問題