首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JS。如何获得类名相似的div列表?

JS。如何获得类名相似的div列表?
EN

Stack Overflow用户
提问于 2014-01-29 20:19:29
回答 2查看 2.7K关注 0票数 4

我有html,像这样:

代码语言:javascript
运行
复制
<div id="c0" class="bz_comment bz_first_comment"></div>
<div id="c1" class="bz_comment"></div>
<div id="c2" class="bz_comment"></div>
<div class="bz_add_comment"></div>

如何获得以JavaScript中的“JavaScript”开头的所有div的数组(例如3 div)(不使用JQuery)?

或者我可以得到以"cnumeric_value“开头的div的id数组吗?

代码语言:javascript
运行
复制
[numeric_value_can_consist_of_some_numbers]

这是类似的问题,比如stackoverflow.com.don/质询/1225611/(但我在这个问题上没有口碑)。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 20:29:11

你应该使用.querySelectorAll

代码语言:javascript
运行
复制
var matching = document.querySelectorAll('[class*="bz_comment"]')

不过,我在您的代码中看到了一些令人担忧的事情:

  • 您有顺序的数字ID,请考虑使用Array来表示顺序数据。
  • 如果必须这样做,则按类名标识符进行选择--使用data-*属性。更好的方法是将元素存储在数组中,并直接引用它们。
票数 5
EN

Stack Overflow用户

发布于 2014-01-29 20:24:49

您可以编写一个函数来处理页面中包含要查找的类的元素:

代码语言:javascript
运行
复制
function containsClass(matchClassName) {
    var matches = new Array();
    var elems = document.getElementsByTagName('div'), i;
    for (i in elems) {
        if((' ' + elems[i].className + ' ').indexOf(' ' + matchClassName + ' ') > -1) {
           matches.push(elems[i]);
        }
    }
    return matches;
}

现在你可以写了

代码语言:javascript
运行
复制
var matches = containsClass('bz_comment');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21441777

复制
相关文章

相似问题

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