发现jQuery中是否有任何元素具有任何类
我继承了一些jQuery和HTML,需要找出是否有任何HTML元素具有任何值的类名。我读了一些文章,在谷歌上搜索了一下,但没有找到任何有用的东西。 所以在伪代码中,我想要的是:发现jQuery中是否有任何元素具有任何类,jquery,html,class,loops,Jquery,Html,Class,Loops,我继承了一些jQuery和HTML,需要找出是否有任何HTML元素具有任何值的类名。我读了一些文章,在谷歌上搜索了一下,但没有找到任何有用的东西。 所以在伪代码中,我想要的是: Loop through all HTML elements If any of them have any class at all: Get their class name as a string 希望这是有意义的 试试看: $('*').each(function() { if ($(this
Loop through all HTML elements
If any of them have any class at all:
Get their class name as a string
希望这是有意义的 试试看:
$('*').each(function() {
if ($(this).hasClass()) {
var class_name = $(this).attr('class');
// do something
}
});
我不知道你为什么要这么做。它是非常低效的var classObj={};
var classObj = {};
$('*').each(function(){
var cNames = this.className.split(' ');
for(var i=0, l=cNames.length; i<l; i+=1){
classObj[cNames[i]] = true;
}
});
$('*')。每个(函数(){
var cNames=this.className.split(“”);
对于(var i=0,l=cNames.length;i您可以使用如下内容:
$("[class]").each(function(){
var className = $(this).attr("class");
})
演示:(请参见控制台中的结果-应找到两个div)要获取类中的所有元素,可以使用$('*[class]')
:
您甚至可以使用$('*[class]')轻松地对它们进行计数。长度
值多少:
$(this).hasClass()
总是返回false
也不起作用,因为它返回如下元素
<p class=""> my p </p>
对于不带类的元素(包括窗体的元素),返回true
<p class=""> my p </p>
我的p
所以
$('*')。每个(函数(){
if($(this).hasClass(“”)==false){
$(“body”).append($(this.prop(“标记名”)+“定义了正确的类
);
}
});
返回定义了正确类的所有标记
Jsfiddle:不是一个直接的问题,但我需要它,所以这里是为未来的用户准备的
如果要查找任何元素是否具有特定类,可以使用以下函数:
function find_any_element(className) {
var found = false;
$('*').each(function() {
if ($(this).hasClass(className)) {
var class_name = $(this).attr('class');
alert("There is an element with this class: " + class_name);
found = true;
}
});
if(!found) {
alert("No element with className '" + className + "' found.");
}
}
无需在元素上循环:
if( jQuery( ".myClass" ).is( ":visible" ) )
{
// do your thing
}
缺点是您的元素不能将display
-属性设置为none
是的,这是一个相当繁重的操作。我打赌有更好的方法解决这个问题。谢谢:)这不是我特别想做的事情。我不是jQuery专家,但对于我继承的代码,我认为这可能是做我需要的事情和客户(他认为自己是一个有才华的业余程序员)的唯一方法需要。我已设法将类的数量减少到6个,因此我希望这将减少开销。再次感谢,我非常感谢。如果$(“*”)选择器不是“*”,则效率相当高。谢谢您抽出时间,我非常感谢:)谢谢你的时间,我也很感激:)谢谢你的时间,我很感激:)老兄,你太棒了。
<p class=""> my p </p>
$('*').each(function() {
if ($(this).hasClass('') === false) {
$("body").append($(this).prop("tagName") + " has a proper class defined <br/>");
}
});
function find_any_element(className) {
var found = false;
$('*').each(function() {
if ($(this).hasClass(className)) {
var class_name = $(this).attr('class');
alert("There is an element with this class: " + class_name);
found = true;
}
});
if(!found) {
alert("No element with className '" + className + "' found.");
}
}
if( jQuery( ".myClass" ).is( ":visible" ) )
{
// do your thing
}