Alo*_*lon 67 html javascript jquery accordion
我有这行代码:
$('#sitesAccordion .groupOfSites').click(function() {
var lastOpenSite = $(this).siblings().hasClass(':not(.closedTab)');
console.log(lastOpenSite);
});
Run Code Online (Sandbox Code Playgroud)
我得到"假"而不是获得其他元素之一(假设有一个 - 并且必须有).我猜问题是:
.hasClass(':not(.closedTab)');
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我的目的是创建自己的手风琴(不使用jQuery UI)
而我正试图这样写:
$('#sitesAccordion .groupOfSites').click(function() {
//Get the last opened tab
var lastOpenSite = $(this).siblings().hasClass(':not(.closedTab)');
//Close last opened tab and add class
lastOpenSite.hide().toggleClass('closedTab');
//Open the current Tab
$(this).children('.accordionContent').toggle('fast');
// remove class from open tab
$(this).toggleClass('closedTab');
});
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?谢谢,Alon
Den*_*nis 109
请改用此not
功能:
var lastOpenSite = $(this).siblings().not('.closedTab');
Run Code Online (Sandbox Code Playgroud)
hasClass
仅测试元素是否具有类,not
将从与所提供的选择器匹配的所选集合中删除元素.
Qar*_*Qar 89
这样做要容易得多:
if(!$('#foo').hasClass('bar')) {
...
}
Run Code Online (Sandbox Code Playgroud)
的!在标准前面表示错误,适用于大多数编程语言.
jQuery的hasClass()
方法返回一个布尔值(true/false)而不是一个元素.此外,要赋予它的参数是类名而不是选择器.
例如: x.hasClass('error');