Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS。如何获取div'的列表;有相似的类名吗?_Javascript_Html - Fatal编程技术网

Javascript JS。如何获取div'的列表;有相似的类名吗?

Javascript JS。如何获取div'的列表;有相似的类名吗?,javascript,html,Javascript,Html,我有html,如下所示: <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> 这是一个类似的问题,比如stackov

我有html,如下所示:

<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>

这是一个类似的问题,比如stackoverflow.com/questions/1225611/(但我在这个问题上没有声誉)。提前感谢。

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

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;
}
现在你可以写作了

var matches = containsClass('bz_comment');
你应该使用

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

    您有序号的数字IDS,考虑使用AN来代替顺序数据。
  • 您正在按类名标识符选择对象,如果必须这样做,请使用属性。更好的方法是将元素存储在数组中,并直接引用它们

为什么你不能使用jQuery?你在使用jQuery吗?你们两个对jQuery认真吗?两个在网站上有5K代表的用户推荐jQuery做一些琐碎的事情,a)没有jQuery也很容易,b)表明一个更大的设计问题。看到这一点,我非常难过,这让我希望向下投票的评论是可能的。@blackbird-欢迎这么做!在哪里,请求JS帮助常常会变成jQuery的大辩论!(用Benjamins的答案,这是正确的。)document.querySelectorAll(“[class*=“bz_comment”]”)有什么问题吗?@RUJordan不需要否决一个适用于(真的)旧浏览器的有效解决方案,他只是想帮点忙。我的策略是让人们解释他们的答案另一个有趣的事实是,无论何时定义新数组,您都可以使用
[]
而不是
新数组()
。@RUJordan实际上,IE8支持
。querySelectorAll
@Benjamin Gruenbaum非常感谢您的回答。
var matches = containsClass('bz_comment');
var matching = document.querySelectorAll('[class*="bz_comment"]')