Javascript 选择带有类和标记名的项目

Javascript 选择带有类和标记名的项目,javascript,dom,Javascript,Dom,我想使用JS查找带有A标记的所有项目,以及类Titanic。如果没有querySelector,我将如何处理这个问题。我希望这个方法是快速的。所以最好不要循环。您可以使用getElementsByTagName()函数来选择锚定标记。您可以使用.classname属性检查类名 var elems = document.getElementsByTagName('*'), i; for (i in elems) { if((' ' + elems[i].className

我想使用JS查找带有
A
标记的所有项目,以及类
Titanic
。如果没有querySelector,我将如何处理这个问题。我希望这个方法是快速的。所以最好不要循环。

您可以使用getElementsByTagName()函数来选择锚定标记。您可以使用.classname属性检查类名

var elems = document.getElementsByTagName('*'), i;
    for (i in elems) {
        if((' ' + elems[i].className + ' ').indexOf(' ' + matchClass + ' ')
                > -1) {
           /*Do something.*/
        }
    }

不过,如果使用jQuery,生活会轻松得多

你无法摆脱循环

您可以使用已包含页面中所有链接的
document.links
集合,并检查每个链接的类名:

var el = [];
for (var i = 0; i < document.links.length; i++) {
    if (document.links[i].className == 'Titanic') {
        el.push(document.links[i]);
    }
}
var el=[];
对于(var i=0;i
演示:


注意:
links
集合仅包含实际链接,即带有
href
属性的锚定标记(和区域标记)。另外,只有当元素只包含类名时,比较类名的方法才有效。

很抱歉,关于这个问题有很多资源,更不用说网络了。我找不到任何没有指向QuerySelector的。因此,除非你能找到这样一个链接,否则你的评论就是情绪,你的否决票是无用的。
('*')
当你可以使用
a
时,它不能没有循环吗?Jquery更简单,但速度较慢。您可以使用“a”、“input”或任何种类。javascript本身没有直接获取类名的功能。+1,但只包含链接,OP可能希望锚定。;-)@罗布:说得好,我在想这个。我添加了一个关于代码限制的注释。