当一个元素有多个类时,在jquery中可以从一个模式中获取一个类吗?
例如
<body class="class-a class-b class-c id-1">类id-1在运行时是未知的,但我只想知道将有一个" id -“模式的类,然后是id。
基本上,我希望在上面的示例中返回数字1。
在这个例子中,我希望返回一个数字6:
<body class="class-a class-b class-c id-6">发布于 2013-09-30 04:43:59
var klass = document.body.className.match(/\bid\-\d+/)[0];要只获取末尾的数字,您可以这样做:
var numb = klass.split('-').pop();但是,如果您甚至不确定是否会有一个数字或一个类,您可能也应该做一些错误处理:
klass = klass.length ? klass[0].indexOf('-') ? klass[0].split('-').pop() : null : null;发布于 2013-09-30 04:47:02
您可以使用.attr('class')检查标记的返回类
$('body').attr('class')然后,您可以应用您的正则表达式
/\s+id\-(\d+)\s+/.exec($('body').attr('class'))如果找到匹配项,则所需的id号将位于返回数组的位置1。
发布于 2013-09-30 04:47:06
也许是这样的?它将使用一个ID,而不是一个类,我认为这可能会更“干净”。
HTML:
<div class="class-a class-b class-c" id="item-6"></div>JS:
var $item = $('.class-a.class-b.class-c');
var number = parseInt($item[0].id.substring(5), 10);
console.log(number);小提琴:http://jsfiddle.net/S8vRr/
它获取具有该类模式的所有元素,然后从该集合的第一个元素的id中提取整数。
编辑:只是阅读了你对OP的评论;看起来你不能设置任何ID。这个答案在理论上可能是可行的,但不幸的是在您的场景中不可行。
https://stackoverflow.com/questions/19083026
复制相似问题