javascript - 使用 JavaScript 或 jQuery 提取特定类

标签 javascript jquery dom

我有一些lments,像这样:

<lment class="item-45 big top hold"></lment>
<lment class="item-46 big top grid"></lment>
<lment class="item-47 big top stop"></lment>

我可以使用以下方式选择它们:

lments = $('[class^="item"]');

但是我如何获得“45”、“46”和“47”?

我从这样的事情开始:

itsClass = lments[i].getAttribute('class');

我不知道从这里去哪里,但希望最终得到与此相同的结果:

lmentsItemNum = someExtractorFunction(itsClass);

最佳答案

由于您需要在开始时获取类名,因此您可以使用 map() 执行类似的操作

  1. 使用map() 迭代 jQuery 对象
  2. 使用 split() 从类名称中提取数字并返回
  3. 要获取结果数组,请使用 get()

lments = $('[class^="item"]').map(function() {
  return this.className.split(' ')[0].split('-')[1];
}).get();
console.log(lments);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<lment class="item-45 big top hold"></lment>
<lment class="item-46 big top grid"></lment>
<lment class="item-47 big top stop"></lment>

如果不是这种格式则

lments = $('[class*="item-"]').map(function() {
  var a;
  this.className.split(' ').forEach(function(v){
  if(v.match(/^item-\d+$/))
    a=v.split('-')[1];
  }); 
  if(a)
  return a;
}).get();
console.log(lments);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<lment class="item-45 big top hold"></lment>
<lment class="item-46 big top grid"></lment>
<lment class="item-big top grid"></lment>
<lment class="item-47 big top stop"></lment>

关于javascript - 使用 JavaScript 或 jQuery 提取特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598760/

相关文章:

javascript - 如果 Lodash 的条件为真,则返回相同值的三元运算符简写?

jQuery:根据单选按钮选择更改可选下拉选项

jquery - 标题中带有特殊字符的 $.getJson 函数

javascript - 检测有效的 DOM 元素

javascript - 枚举附加到文档的 HTML 对象的所有事件

javascript - 如果任何 Div 是空的做一些事情

javascript - jquery 验证错误 预期的标识符、字符串或数字

javascript - 为什么在调用服务器端验证之前 HttpPostedFileBase 会在大文件上出错?

jquery - 是否可以通过像 Handlebars 这样的模板库访问 jquery 函数?

javascript - 当我使用 javascript 的 document.write 命令时,它似乎不显示前导空格。请帮助