Javascript 如何使用jQuery'检查连字符后面的内容;s";属性包含前缀选择器";

Javascript 如何使用jQuery'检查连字符后面的内容;s";属性包含前缀选择器";,javascript,jquery,css-selectors,Javascript,Jquery,Css Selectors,我有一些html,比如: <a class="link" href="#>link</a> <a class="link-0" href="#>link</a> <a class="link-1 enabled" href="#>link</a> <a class="link-2" href="#>link</a> 但是我发现很难检查连字符后面的内容,我考虑通过attr('class')使用spli

我有一些html,比如:

<a class="link" href="#>link</a>
<a class="link-0" href="#>link</a>
<a class="link-1 enabled" href="#>link</a>
<a class="link-2" href="#>link</a>
但是我发现很难检查连字符后面的内容,我考虑通过
attr('class')
使用
split(''')
拆分类,并检查每个类,如果它以“link”开头,然后再次使用
split('-')
拆分


有人知道更好的方法吗?

有趣的是,这个选择器的其他变体与之不匹配——可能是带有连字符的jquery的一个bug

$('a[class^="link-"]')
结果是其他人工作,而不是“单词选择器”


可以使用正则表达式:

var matches = element.attr("class").match(/^link-?(\d*)$/);
var whichLink = matches[1];

这可能取决于你想对第二部分做什么。你想提取并处理它,还是想做什么?我个人只想使用类“link”(无论如何查找它会更快),然后将附加限定符存储在“data-”属性(如“data link”)中,除非你需要“link-0”等来进行样式设置。在这种情况下,我会给它两个类:“link”和“link-n”,然后使用正则表达式找到“link-n”类并去掉“n”。
$('a[class*="link-"]')
var matches = element.attr("class").match(/^link-?(\d*)$/);
var whichLink = matches[1];