我想找到哪个类里面有一个数字,并通过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>
请提出建议,我如何只选择一个带有编号的班级(从几个班级中)并获得该编号?
答案 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