0

特定の子にアクセスし、それにもう 1 つ追加する必要がYii CListViewあります。divmultiple child divsdivdiv

私は1つのアプローチを使用してそれを解決することができましたが、それが正しいとは思いません。以下は、私のソリューションの概要です (以下のコードには、必要なすべての変数宣言やその他のものは含まれていません。完全ではなく、コア コードを貼り付けました。 ):

  1. Id で親 div にアクセスしました (これを Yii にコーディングできるため、ID が使用可能だったため)
  2. を使用して、この div のすべての要素を取得しました。

    var div_childern = document.getElementById('StudentGridViewId').getElementsByTagName('*');
    
  3. 繰り返し処理され、目的の div に到達すると、新しい div が追加されました。新しいdivを追加したいdivのクラス名は「items」であることに注意してください。以下のようにコードします。

        for (var i = 0; i < div_childern.length; i++) {
        if (div_childern[i].getAttribute('class')=='items'){
            document.getElementById('StudentGridViewId').getElementsByTagName('*')[i].appendChild(newdiv);
            i=div_childern.length+1;
        }
      }
    

このソリューションの唯一の問題は、ドキュメント全体に 2 回アクセスしていること getElementsByTagNameです。最初にすべてのリストを取得してitemsから、新しいdiv. これにもっと良い方法はありますか?

また、生成されるId「アイテム」の設定を誰かに教えてもらえますか?divYii

ありがとうファイサル

4

1 に答える 1

0

JQuery を使用すると、より洗練されたソリューションを取得できる可能性があります。ただし、従来の JavaScript を使用する場合は、次のようにします。

  for (var i = 0; i < div_childern.length; i++) {
    if (div_childern[i].getAttribute('class')=='items'){
        div_childern[i].appendChild(newdiv);
        i=div_childern.length+1;
    }
  }
于 2012-09-20T04:54:57.937 に答える