jquery 如何获取元素的类名

am46iovg  于 2023-04-29  发布在  jQuery
关注(0)|答案(7)|浏览(159)

我有一个收藏的div。..

<div class='happy person'><img src='#' /></div>
<div class='fat person'><img src='#' /></div>
<div class='joyous person'><img src='#' /></div>
<div class='grotesque person'><img src='#' /></div>
<div class='sad person'><img src='#' /></div>

我选择使用。..

var people = $('.person')

结果存储在类变量中。jQuery将此选择的结果存储为HTMLDivElements数组-它们就是。
稍后,我希望能够查看这个数组,并就每个元素的类做出一些决定。我已经仔细研究了一个可能的解决办法但这失败了,因为我没有直接处理jQuery对象。
我如何得到数组中这些div的类名?

anhgbhbe

anhgbhbe1#

这应该可以工作:

var people = $('.person');
$.each(people, function(index, el) {
    var _this = $(el);
    if (_this.hasClass('happy')) {
        alert('Happy!');
    } else if (_this.hasClass('fat')) {
        alert('Fat!');
    }
});
zpqajqem

zpqajqem2#

我不知道你说的“我没有直接处理jQuery对象”是什么意思,因为$('.person')返回一个jQuery对象, Package 在一个元素数组周围。
要获取元素的类,只需在jQuery对象上使用.attr('class')。将其与.map()组合,您可以为每个元素创建一个仅包含类名的数组:

var classes = $('.person').map(function () {
    return $(this).attr('class');
}).get();

这将生成以下数组:

['happy person', 'fat person', ..., 'sad person']
ipakzgxi

ipakzgxi3#

摘自:http://bytes.com/topic/javascript/answers/91636-getting-class-name-string,如果你没有使用jQuery,这可能值得一试。

function getClassName(obj) {
   if (typeof obj != "object" || obj === null) return false;
   return /(\w+)\(/.exec(obj.constructor.toString())[1];
}
vxf3dgd4

vxf3dgd44#

要获取单个div上的所有类,请使用.attr函数。

var classes = myDiv.attr('class');

这将返回一个空格分隔的元素上所有类的列表。
如果要检查特定类的存在,请使用.hasClass()

var hasJoy = myDiv.hasClass('joyous');
hlswsv35

hlswsv355#

使用纯JavaScript循环遍历它们:

for (var i = 0; i < people.length; i++)
{
  var class = people[i].attr('class');
}

或者使用jQuery:

people.each(function()
{
  var class = $(this).attr('class');
});

你知道有一个类fat person就等于没有一个类fat person?它继承了fatperson的CSS属性。如果你需要一个像这样的类名,使用下划线:fat_person

rkkpypqq

rkkpypqq6#

div_attrs = node.attributes;
div_class = div_attrs.getNamedItem("class").value;
agyaoht7

agyaoht77#

$(document).click(function(e){
    var className = e.target.className;
    alert(className);
});
b{
background-color:lightgreen;
padding:10px 20px;
margin:20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<b class='class-one'>Class One</b>
<b class='class-two'>Class-Two</b>
<b class='class-three'>Class-Three</b>

相关问题