1

UL要素をDIV要素に動的に追加しています。すべてのULが動的に削除されたら、それらが含まれているDIVを削除できるように、DIV内にあるUL要素の数をカウントできるようにしたいと思います。

<div id="000">

<ul id="000-1">
<li>Stuff</li>
<li>Stuff</li>
</ul>

<ul id="000-2">
<li>Stuff</li>
<li>Stuff</li>
</ul>

</div>

このようなことができるようにULの量をカウントする単純なJavascriptソリューションはありますか?

if(ulcount == 0){

var remove = document.getElementById("000");
remove.innerHTML = '';
results.parentNode.removeChild("000");

}

ありがとう。

4

3 に答える 3

4

@Cheesoの答えは、優れた純粋なJSソリューションです。ただし、jQuery を使用している場合は、プロセスをより簡単にすることができます。

jQuery('div#000').children('ul').length;

上記のコードは、 の子ul要素の数を返しdiv#000ます。

要素を動的に追加するときにカウントを更新するには、関数を作成し、それを呼び出して、変更が発生するたびに数値を更新する必要があります。

function countUls() {jQuery('div#000').children('ul').length;}

それをイベントにバインドして、番号を更新するときに呼び出されるようにします。

于 2011-10-22T15:12:06.797 に答える
2

コード:

    function getDirectChildrenByTagName(elt,tagname) {
        var allChildren = elt.children, wantedChildren=[], i, L;
        tagname = tagname.toUpperCase();
        for(i=0, L=allChildren.length; i<L; i++) {
            if (allChildren[i].tagName.toUpperCase() == tagname) {
                wantedChildren.push(allChildren[i]);
            }
        }
        return wantedChildren;
    }

次のように使用します。

var zero = document.getElementById("000");  
var uls = getDirectChildrenByTagName(zero, 'UL');
var ulCount = uls.length;
  ....
于 2011-10-22T14:59:03.680 に答える