jQuery中是否有一种方法可以循环遍历或分配给数组中所有被分配给元素的类?
ex.
<div class="Lorem ipsum dolor_spec sit amet">Hello World!</div>
我将寻找一个“特殊”类,如上面的“dolor_spec”。我知道我可以使用hasClass(),但实际的类名可能并不一定知道。
jQuery中是否有一种方法可以循环遍历或分配给数组中所有被分配给元素的类?
ex.
<div class="Lorem ipsum dolor_spec sit amet">Hello World!</div>
我将寻找一个“特殊”类,如上面的“dolor_spec”。我知道我可以使用hasClass(),但实际的类名可能并不一定知道。
当前回答
var classList = $(element).attr('class').split(/\s+/);
$(classList).each(function(index){
//do something
});
其他回答
$('div').attr('class').split(' ').each(function(cls){ console.log(cls);})
也许这个也能帮到你。我已经使用这个函数来获取子元素的类。
function getClickClicked(){
var clickedElement=null;
var classes = null;<--- this is array
ELEMENT.on("click",function(e){//<-- where element can div,p span, or any id also a class
clickedElement = $(e.target);
classes = clickedElement.attr("class").split(" ");
for(var i = 0; i<classes.length;i++){
console.log(classes[i]);
}
e.preventDefault();
});
}
在你的情况下,你想要doler_ipsum类,你可以这样做,现在类[2];。
感谢这一点-我有一个类似的问题,因为我试图通过编程将对象与分层类名联系起来,即使这些名称可能不一定是我的脚本所知道的。
在我的脚本中,我想要一个<a>标记通过给<a>标记[some_class]加上toggle的类来打开/关闭帮助文本,然后给它的帮助文本[some_class]_toggle的类。这段代码成功地找到了使用jQuery的相关元素:
$("a.toggle").toggle(function(){toggleHelp($(this), false);}, function(){toggleHelp($(this), true);});
function toggleHelp(obj, mode){
var classList = obj.attr('class').split(/\s+/);
$.each( classList, function(index, item){
if (item.indexOf("_toggle") > 0) {
var targetClass = "." + item.replace("_toggle", "");
if(mode===false){$(targetClass).removeClass("off");}
else{$(targetClass).addClass("off");}
}
});
}
你应该试试这个:
$("selector").prop("classList")
它返回元素当前所有类的列表。
为什么没有人简单的上市。
$(element).attr("class").split(/\s+/);
编辑:分裂/\s+/而不是' '修复@MarkAmery的反对。(谢谢@YashaOlatoto。)