如何确定哪一类元素内有数字

时间:2019-01-04 09:44:25

标签: jquery css class

我想找到哪个类里面有一个数字,并通过jquery获取它。 我知道可以使用data属性,但是我需要实现className + number解决方案。

我想这可能很简单,但是找不到答案。

我试图像使用正则表达式:

1)$(this).attr('class').match(/\d+/)[0];

2)$(this).attr('class').match(/number-\d+)/)[0];

两个正则表达式都有效,但是它们仅获得#works的值,而不是#doesnot的值。 我想这是因为第二个div有2个类(在我的情况下,我将有很多元素,其中几个类的开头相似)。

我的代码(仅供参考):

<div>
   <div id="works" class="number-1"></div>
   <div id="doesnot" class="second number-2"></div>
</div>

请提出建议,我如何只选择一个带有编号的班级(从几个班级中)并获得该编号?

1 个答案:

答案 0 :(得分:0)

我个人更喜欢仅将.test()用于我的JavaScript / jQuery RegEX。个人感觉更干净,更容易编写。我要做的就是获取元素的classList(返回一个数组)并遍历它们,并根据模式检查它们。

我举了一个例子here,但是代码是:

JS

$('div').each(function()
{
    let classes = $(this).prop('classList');

    $.each(classes, function(i, val)
    {
        if (/number-\d/.test(val)) console.log(val)
    })
});

HTML

<div class="element-1 element-23 treybake">
    <span>Hello, world</span>
</div>

<div class="element">
    <span>Goodbye, world</span>
</div>

基本上,我们将类字符串与\d相匹配:

  

匹配一个数字字符。相当于[0-9]。

  例如,/ \ d /或/ [0-9] /匹配“ B2是组号”中的“ 2”。

来源:MDN