我正在创建一个自定义选择菜单,我遇到的一个绊脚石是默认选择元素和新元素之间的类转换。我尝试过的一种方法是..
$(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
并转移到新的选择。
答案 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);
});
});