首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过regex/pattern从多个

通过regex/pattern从多个
EN

Stack Overflow用户
提问于 2013-09-30 04:37:36
回答 5查看 229关注 0票数 0

当一个元素有多个类时,在jquery中可以从一个模式中获取一个类吗?

例如

代码语言:javascript
复制
<body class="class-a class-b class-c id-1">

id-1在运行时是未知的,但我只想知道将有一个" id -“模式的类,然后是id。

基本上,我希望在上面的示例中返回数字1。

在这个例子中,我希望返回一个数字6:

代码语言:javascript
复制
<body class="class-a class-b class-c id-6">
EN

回答 5

Stack Overflow用户

发布于 2013-09-30 04:43:59

代码语言:javascript
复制
var klass = document.body.className.match(/\bid\-\d+/)[0];

要只获取末尾的数字,您可以这样做:

代码语言:javascript
复制
var numb = klass.split('-').pop();

但是,如果您甚至不确定是否会有一个数字或一个类,您可能也应该做一些错误处理:

代码语言:javascript
复制
klass = klass.length ? klass[0].indexOf('-') ? klass[0].split('-').pop() : null : null;
票数 0
EN

Stack Overflow用户

发布于 2013-09-30 04:47:02

您可以使用.attr('class')检查标记的返回类

代码语言:javascript
复制
$('body').attr('class')

然后,您可以应用您的正则表达式

代码语言:javascript
复制
 /\s+id\-(\d+)\s+/.exec($('body').attr('class'))

如果找到匹配项,则所需的id号将位于返回数组的位置1。

票数 0
EN

Stack Overflow用户

发布于 2013-09-30 04:47:06

也许是这样的?它将使用一个ID,而不是一个类,我认为这可能会更“干净”。

HTML:

代码语言:javascript
复制
<div class="class-a class-b class-c" id="item-6"></div>

JS:

代码语言:javascript
复制
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。这个答案在理论上可能是可行的,但不幸的是在您的场景中不可行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19083026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档