0

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

$(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将由脚本记录并移至新选择。

4

2 回答 2

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

演示:小提琴

于 2013-09-04T13:22:42.763 回答
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);
    });
});
于 2013-09-04T13:25:53.700 回答