Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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访问类=列_Javascript_Dom - Fatal编程技术网

使用javascript访问类=列

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

如何使用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</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;
    }