Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery统计元素中类名的数量_Jquery_Html_Class_Select - Fatal编程技术网

jQuery统计元素中类名的数量

jQuery统计元素中类名的数量,jquery,html,class,select,Jquery,Html,Class,Select,我目前正在创建一个自定义选择菜单,我遇到的一个障碍是在默认选择元素和新元素之间转换类。我试过的一种方法是 $(document).ready(function() { $("select").each(function() { var class = "select"; if ($(this).attr("class").length > 0) { class = class + " " + $(this).attr("cl

我目前正在创建一个自定义选择菜单,我遇到的一个障碍是在默认选择元素和新元素之间转换类。我试过的一种方法是

$(document).ready(function() {
    $("select").each(function() {
        var class = "select";

        if ($(this).attr("class").length > 0) {
            class = class + " " + $(this).attr("class");
        }
    });
});
如您所见,它所做的只是测量找到的字符数量,而不是找到的实例数量。这可能是最容易做的事情之一,但我似乎就是无法集中注意力。有人知道我能做什么吗

我只想指出,不管类名是什么,因为它绝对可以是任何名称,如果我有一个自定义选择,我想向右浮动,我只需编写
,脚本就会记录
class=right
,并将其移到新的select中。

试试看

$(document).ready(function () {
    var classNames = [];
    $("select").each(function () {
        var classes = (this.className || '').split(/\s+/);
        $.each(classes, function (i, v) {
            if ($.inArray(v, classNames) == -1) {
                classNames.push(v)
            }
        })
    });
    console.log(classNames)
});

演示:

单词
class
是一个保留字。将其更改为其他内容,如
classname
,它应该可以工作

$(document).ready(function() {
    $("select").each(function() {
        var classname = "select";

        if ($(this).attr("class").length > 0) {
            classname = classname + " " + $(this).attr("class");
        }
        console.log(classname);
    });
});

是时候学习一些新的jQuery函数了!这看起来很有用,我来看看……那就解释了!自我提醒;创建唯一的变量!干杯:)