jQuery计算一个元素WITHIN的类名数

时间:2013-09-04 13:16:56

标签: jquery html class select

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

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

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

正如您所看到的,它所做的只是测量找到的字符数量而不是找到的实例数量。这可能是最简单的事情之一,但我似乎无法理解它。有人对我能做什么有任何想法吗?

我只想指出,不要重要的是类名是什么,因为它可能绝对是任何名称,如果我有一个自定义选择我就是这样想要向右浮动,我只需编写<select class="right"></select>,然后脚本会记下class=right并转移到新的选择。

2 个答案:

答案 0 :(得分:1)

尝试

$(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)
});

演示:Fiddle

答案 1 :(得分:1)

单词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);
    });
});