javascript - 选择类以特定字符串结尾的元素

标签 javascript jquery

这可能以前已经回答过,但我不知道如何正确表达。

对于元素:

<div id='div1' class="class1 1foobar"></div>
<div id='div2' class="class1 class2 2foobar"></div>

如何获取以“foobar”结尾的类的名称?所以对于“div1”我想得到一个字符串“1foobar”,对于“div2”我想得到字符串“2foobar”。

最佳答案

  1. 选择其 class 属性值包含所需字符串的所有元素。 $('[class*="foobar"]') 选择器将选择 foobarclass 属性值中的任何位置的所有元素.
  2. 过滤类名以它结尾的元素。使用 filter() 和 RegEx /foobar\b/ 将过滤掉类以 foobar 字符串结尾的元素。

请注意,正则表达式中的 \bword boundary .

$('[class*="foobar"]').filter(function() {
    return /foobar\b/.test($(this).attr('class'));
}).css('background', 'green');
div {
  height: 50px;
  width: 50px;
  margin: 5px;
  background: red;
  float: left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="class2 2foob ar"></div>
<div id='div1' class="class1 1foobar"></div>
<div id='div2' class="class1 class2 2foobar"></div>

<div class="class1 class2 2foo bar"></div>


获取类名列表

  1. 选择 class 属性值中任意位置包含 foobar 的元素。
  2. 使用 match() 获取类名,如果它包含的话。
  3. 如果在字符串中找不到匹配项,
  4. match() 将返回 null,否则它将返回一个包含匹配项的数组。第一项(第零个索引)是感兴趣的类名。
$('[class*="foobar"]').each(function () {
    var className = $(this).attr('class').match(/\S*foobar\b/i);
    if (className) {
        console.log(className[0]);
    }
});

$('[class*="foobar"]').each(function() {
  var className = $(this).attr('class').match(/\S*foobar\b/i);
  if (className) {
    console.log(className[0]);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="class2 2foob ar"></div>
<div id='div1' class="class1 1foobar"></div>
<div id='div2' class="class1 class2 2foobar"></div>

<div class="class1 class2 2foo bar"></div>

关于javascript - 选择类以特定字符串结尾的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083655/

相关文章:

javascript - JS 函数在页面加载之前预加载图像

javascript - 如何找到导致 ActionController::RoutingError No Route matches 错误的原因?

javascript - 将 HTML5 范围 slider 最小值和最大值映射到数组值

jquery - PreventDefault 在第二次单击时不起作用

jQuery ui slider - 滑动时值是否增加或减少

javascript - 如果选择选项等于值则持续

javascript - 使 Discord 机器人命令不区分大小写?

Javascript 类更改不会更改 Chrome 中的 CSS3 渐变

数组内的 Javascript 对象 - 错误求值

javascript - 如何在jqplot饼图上显示工具提示