jQuery匹配正则表达式

前端之家收集整理的这篇文章主要介绍了jQuery匹配正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
var playerClass = $(this).parent().attr('class')

关于只从dom选择特定类的问题。

我可以添加到这一行,只选择具有player-1类,player-2类的类,基本上是前缀为player的后面跟数字的任何东西?

解决方法

我无法确切地说出你在问的问题,所以这里有四种可能性。希望其中一个匹配您打算要求的,或者您可以稍微修改其中一个以适应。

要选择所有输入项,其中xx是一个数字,你可以这样做:

var playerClass = $('input[class^="player-"]').filter(function() {
    return((" " + this.className + " ").match(/\splayer-\d+\s/) != null);
});

第一个jQuery选择器获取以“player-”开头的任何类名。过滤器然后消除任何不是“player-nn”的项目。

如果你只是想检查一个特定的类名是否包含player-nn,那么你可以这样做:

if ((" " + $(this).parent().attr('class') + " ").match(/\splayer-\d+\s/) != null) {
    // the parent has player-nn as a class
}

如果您只想在父项上获得匹配的类,可以使用以下方法

var matches = (" " + $(this).parent().attr('class') + " ").match(/\s(player-\d+)\s/);
if (matches) {
    playerClass = matches[1];
}

如果你想在播放器之后真正获得数字,你可以这样做:

var matches = (" " + $(this).parent().attr('class') + " ").match(/\splayer-(\d+)\s/);
if (matches) {
    playerNum = parseInt(matches[1],10);
}

注意:所有这些例子都使用了一个技巧(我从jQuery中学到),如果在整个类名的开头和结尾添加一个空格,那么可以通过查找特定的类名环绕双方都有空白。这确保您不匹配较长类名的一部分,并且仅匹配整个类名。 jQuery在它的.hasClass()实现中使用这个技巧。

猜你在找的jQuery相关文章