使用javascript访问类=列
如何使用javascript而不是jquery访问class=列使用javascript访问类=列,javascript,dom,Javascript,Dom,如何使用javascript而不是jquery访问class=列 <div id="columns"> <div class="column"><header>A</header></div> <div class="column"><header>B</header></div> <div class="column"><header>C<
<div id="columns">
<div class="column"><header>A</header></div>
<div class="column"><header>B</header></div>
<div class="column"><header>C</header></div>
</div>
A.
B
C
有几种方法。最简单的方法是使用querySelectorAll('.column'),但它是新的,因此它只适用于现代浏览器。当然,其他人会发布一个答案,解释如何以更兼容的方式进行操作。类似的内容可能会出现。你会想把它放在一个窗口中。onLoad
或onclick
或其他一些函数来让它工作,但你明白了吗
divs = document.getElementsByTagName("div");
for( var i = 0; i < divs.length; i++ )
{
if( divs[i].className == "column" ||
divs[i].className == "another-class" ) {
//Do something here
}
}
divs=document.getElementsByTagName(“div”);
对于(变量i=0;i
要搜索可能具有多个类的元素,请尝试:
divs=document.getElementsByTagName(“div”);
对于(变量i=0;i 对于(var j=0;j,除了较旧的Internet Explorer之外,几乎所有浏览器都可以使用
document.getElementById('columns').getElementsByClassName('column');
作为IE,它甚至是一个元素?)
它是一个
它是否有列
类
尽管最后一个条件只有在它只有那个类时才有效,但这可能仍然适用于您。您还可以测试节点[i]。节点类型==1&&(节点[i]。类名+“”)。索引(“列”)>=0
节点类型1
是元素。@rcdmk是的,我记不起头顶上的节点类型编号,所以我选择了另一种选择。当然,你的建议在语义上更好。但是!indexOf(“列”)>=0
不正确。这也会选择
;-)你是对的。我在末尾添加了一个空格,但忘记了行号:(“+nodes[I].className+”).indexOf(“column”)>=0
如果div的类多于列
?那么您想选择多个类名吗?只需执行或语句。我将编辑答案…您确定这适用于class=“column-wide”
和class=“某个类另一个类”吗
?对不起,我不太明白你的意思。我已经更新了我的答案
document.getElementById('columns').getElementsByClassName('column');
function getColumnDivs() {
var results = new Array();
var nodes = document.getElementById('columns').children;
for (var i = 0; i < nodes.length; i++)
if (typeof nodes[i].tagName != "undefined" &&
nodes[i].tagName.toLowerCase() == "div" &&
nodes[i].className.className == "column") {
results.push(nodes[i]);
}
return results;
}