Посчитайте, сколько элементов UL в Div с Javascript? - PullRequest
1 голос
/ 22 октября 2011

Я динамически добавляю элементы UL к элементу DIV.Я хотел бы иметь возможность подсчитать, сколько элементов UL находится внутри DIV, чтобы после динамического удаления всех UL я мог удалить DIV, в котором они содержатся.

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

Есть простойРешение Javascript, которое подсчитывает количество UL, чтобы я мог сделать что-то вроде этого ..?

if(ulcount == 0){

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

}

Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 октября 2011

@ Ответ Cheeso - это хорошее решение для JS.Но если вы используете jQuery, процесс можно упростить.

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

Приведенный выше код вернет количество дочерних ul элементов div#000.

.Чтобы обновить счетчик при добавлении элементов динамически, вам нужно будет создать функцию и вызывать ее для обновления номера при каждом изменении:

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

Привязать это к событию, чтобы оно вызывалось приВы хотите обновить номер.

2 голосов
/ 22 октября 2011

Код:

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