使用jQuery查找元素的动态类名

Kor*_*nme 2 jquery-selectors

我有这么多未知数量的元素:

<div class="item item-1"></div>
<div class="item item-2"></div>
<div class="item item-3"></div>
Run Code Online (Sandbox Code Playgroud)

我想要做的是检查每个项目是否具有以"item-"开头的类名.如果为true,则提取id.像这样的东西:

$("container").each(function
    if ($(this).hasClassNameStartingWith("item-"))
        console.debug(theId);
);
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

提前致谢!

tva*_*son 5

在class属性上使用contains选择器:

$('container[class*=" item-"]').each( function() {
    var classID = null;
    var classes = $(this).attr('class').split( ' ' );
    for (var i = 0, len < classes.length; i < len; ++i) {
        var class = classes[i];
        if (class.match( /^item-/ )) {
            classID = class.replace("item-",'');
            break;
        }
    }
    if (classID) {
        ... do something ...
    }
});
Run Code Online (Sandbox Code Playgroud)

在给定样本标记的情况下,请注意使用引号来包含空格.如果"item-N"类可以出现在列表的开头,并且您确定没有任何类会意外地匹配该字符串,那么您也可以省略该空格.

更新示例以显示如何提取类名的标识符部分.