我正在使用jQuery並查看是否有簡單的方法來確定元素是否具有與其關聯的特定CSS類。確定元素是否具有jQuery的CSS類
我有元素的id和我正在尋找的CSS類。我只需要能夠在if語句中根據元素上該類的存在進行比較。
我正在使用jQuery並查看是否有簡單的方法來確定元素是否具有與其關聯的特定CSS類。確定元素是否具有jQuery的CSS類
我有元素的id和我正在尋找的CSS類。我只需要能夠在if語句中根據元素上該類的存在進行比較。
使用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')
沒錯。文檔在這裏:http://docs.jquery.com/Traversing/hasClass – 2008-11-04 20:14:23
我不同意。文檔按類別組織,但您也可以按字母順序輕鬆查看所有方法。每件事都有一個例子,評論部分通常會清除任何被遺漏的東西。 jQuery有很多優秀的功能和實用程序,需要一些學習來發現它們。 -EDIT-這很有道理,這絕對是一個很長的路要走。 – Trafalmadorian 2010-05-20 05:19:54
@Trafalmadorian,我已經刪除了我原來的評論,因爲情況已經改變。最初您在-EDIT之前發佈了所有內容,並且我回復說我對文檔質量的評論不再相關,而是提及他們以前的(MediaWiki)系統。然後,您刪除了以前的評論並放置了-EDIT-。我希望這個清理工作對未來的讀者來說更清楚一點,不會讓人誤解。 – eyelidlessness 2010-05-20 18:05:01
elem = $("#elemid");
if (elem.is (".class")) {
// whatever
}
或:
elem = $("#elemid");
if (elem.hasClass ("class")) {
// whatever
}
至於否定,如果你想知道,如果一個元素有沒有一個類,你可以簡單地做馬克說。
if (!currentPage.parent().hasClass('home')) { do what you want }
檢查的官方jQuery的FAQ頁面:
How do I test whether an element has perticular class or not
沒有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的!
$('.segment-name').click(function() {
if($(this).hasClass('segment-a')){
//class exist
}
});
在我的情況,我用了「是」一個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();
}
在幫助人誰在這裏的土地,但實際上是在尋找這樣做的jQuery的免費方式的利益:
element.classList.contains('your-class-name')
如果你想沒有jQuery,[「hasClass」與JavaScript?](http://stackoverflow.com/q/5085567/1529630) – Oriol 2016-06-12 17:23:54