将具有相同类的所有div插入到数组中?

时间:2012-02-04 10:35:26

标签: javascript jquery arrays class html

我想将所有具有类.page的div插入到数组中,然后使用数组迭代调用每个div。例如,数组页面[]应该允许我在页面[2]中为div添加某些效果。

4 个答案:

答案 0 :(得分:5)

var pageDivs = document.getElementsByClassName("page");
for(i = 0; i < pageDivs.length;i++)
{
    //apply your effects using pageDivs[i]
}

答案 1 :(得分:1)

你想这样做吗?

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
      var arr=[];
      $(".page").each(function(){ arr.push($(this));});
      $.each(arr,function(key,val){ val.css('color','gray')});  
});
</script>
</head>
<body>
<b>.page content will be colored in gray.</b><br/><br/>
<div class="dontDo">The quick </div>
<div class="page">brown fox jumps</div>
<div class="doIt"> over the lazy dog</div>
<div class="page"> over the lazy dog</div>
</body>
</html>

答案 2 :(得分:0)

我认为在某些浏览器中不支持getElementByClassName。但是你可以像这样使用calssName属性:

function getElementsByClassName( strClassName, obj ) {
    if ( obj.className == strClassName ) {
        //insert this elm into array 
        array.push(obj);
    }  
}

答案 3 :(得分:0)

.getElementsByClassName is not supported&lt; IE8。如果您对此并不担心,那么Sunil的回复将对您有所帮助。

如果您需要the jQuery way

$(".page").each(function(index) {
    // do stuff here
});

快乐迭代。