2012-07-26 34 views
0

我想通过子项的数量为容器元素添加一个类。但是,我的代码只广告第一个容器的类,并且添加了错误。Mootools通过子项数量将容器类添加到容器

这是我要做的:

<ul> 
<li> 
    <div id="container" class="add class here for example col3"> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    </div> 
</li> 
<li> 
    <div id="container" class="add class here for example col1"> 
    <div class="child"></div> 
    </div> 
</li> 
</ul> 

我写了一个情况下,该代码当容器只有一个孩子,但它不工作。 此广告COL1类,其有3个孩子:(

window.addEvent('domready', function() { 
    var children = $('container').getChildren('div.child'); 
    if(children.length = 1) { 
     $('container').set('class', 'col1'); 
    } 
}); 

所以我困在这里。

+0

您的标记无效 - 标识在文档中必须是唯一的。 – jbabey 2012-07-26 18:30:48

回答

0

您的问题是你分配相同的ID这样的事实:第一容器所有。容器尝试是这样的:

window.addEvent("domready", function(){ 
    $$("div.container").each(function(item, i){ 
     var childCount = item.getChildren("div.child").length; 
     item.addClass("col" + childCount); 
    });​​​​​​​​ 
}); 

HTML:

<ul> 
<li> 
    <div class="container"> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    </div> 
</li> 
<li> 
    <div class="container"> 
    <div class="child"></div> 
    </div> 
</li> 
</ul>​ 

见它在这里工作:http://jsfiddle.net/kSVL5/

+0

谢谢,可能我累了,我不能相信我错过了我为多个元素添加了相同的ID。哦,你添加了一个额外的关闭内部功能。 – 2012-07-26 18:50:31

+0

这不工作。我看不到任何课程来源。 – 2014-01-23 19:59:54

+0

@YannisDran对我来说工作得很好。打开控制台查看它,它实际上并没有在屏幕上显示任何内容。 – dom 2014-01-23 23:53:56

相关问题