的考虑下面的HTML标记:如何选择一个特定的CSS类名称的一部分了多类
<div id="my-id" class="my-class items-5"/>
我如何可以提取类属性的5
,如果5
是动态生成的? 我大概可以做的' '
分裂并引用'-'
第二索引的索引,但这似乎如此长篇大论:
var count = $("#my-div").attr("class").split(' ')[1].split('-')[1];
的考虑下面的HTML标记:如何选择一个特定的CSS类名称的一部分了多类
<div id="my-id" class="my-class items-5"/>
我如何可以提取类属性的5
,如果5
是动态生成的? 我大概可以做的' '
分裂并引用'-'
第二索引的索引,但这似乎如此长篇大论:
var count = $("#my-div").attr("class").split(' ')[1].split('-')[1];
一个固定的标记,你不能改变另一种解决方案,并假设相关类总是items-number
被拆分通过items-
,然后得到它后面的第一个单词:
var count = $("#my-id").attr("class").split('items-')[1].split(' ')[0];
console.log(count);
var count2 = $("#my-id2").attr("class").split('items-')[1].split(' ')[0];
console.log(count2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my-id" class="my-class items-5"/>
<div id="my-id2" class="my-class items-23 another-class"/>
这也将工作更多的类和不同的排序。
考虑到这是一个单一的数字。
var divClass = $("#my-div").attr("class");
var digit = divClass.substr(-1);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="my-div" class="my-class items-5"/>
如果'item-5'总是最后一个类,这将工作。可能是'item-5'后面还有其他的类,例如:'class =“my-class items-5 another-class”' –
确实如此。根据上面的HTML示例,这是您的解决方案的替代方案。对于其他标记索引,分割将会更好。 – mtt
试试这个 https://jsfiddle.net/fm7dp4ht/
var count;
var parsed;
var classList = document.getElementById('my-id').className.split(/\s+/);
for (var i = 0; i < classList.length; i++) {
if (parsed = classList[i].match(/^items-([0-9]*)$/)) {
count = parsed[1];
break;
}
}
alert(count);
'项目-5'是你的动态类? –
@chirag,是的,'5'是动态的 –
我怀疑你并不真的需要提取它,但这取决于你为什么要提取它,你没有给我们提供任何有关 –