0

コンテナ要素のクラスを子アイテムの数だけ追加したい。しかし、私のコードは最初のコンテナーのクラスのみを広告しており、それは間違って追加されています。

これは私がやろうとしていることです:

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

コンテナに子が 1 つしかない場合にこのコードを書きましたが、機能しません。これにより、col1 クラスが 3 つの子を持つ最初のコンテナに追加されます:(

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

だから私はここで立ち往生しています。

4

1 に答える 1

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/

于 2012-07-26T18:26:56.013 に答える