用Javascript计算一个Div中有多少个UL元素?

发布于 2024-12-11 11:56:38 字数 549 浏览 0 评论 0原文

我正在动态地将 UL 元素添加到 DIV 元素。我希望能够计算 DIV 内有多少 UL 元素,以便动态删除所有 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");

}

谢谢。

I am dynamically adding UL elements to a DIV element. I would like to be able to count how many UL elements there are inside the DIV so that once all the ULs are removed dynamically I can delete the DIV that they are contained in.

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

Is there a simple Javascript solution that counts the amount of ULs so that I can do something like this.. ?

if(ulcount == 0){

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

}

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

也只是曾经 2024-12-18 11:56:38

@Cheeso 的答案是一个很好的纯 JS 解决方案。但是,如果您使用 jQuery,该过程会变得更简单。

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

上面的代码将返回 div#000 的子 ul 元素的数量。

要在动态添加元素时更新计数,您必须创建一个函数并在发生更改时调用它来更新数字:

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

将其绑定到一个事件,以便在您想要更新数字时调用它。

@Cheeso's answer is a good pure-JS solution. But, if you're using jQuery, the process can be made simpler.

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

The above code will return the number of child ul elements of the div#000.

To update the count when you add elements dynamically, you will have to create a function and call it to update the number whenever a change occurs:

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

Bind that to an event so that it will be called when you want to update the number.

嗫嚅 2024-12-18 11:56:38

代码:

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

Code:

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

use it like this:

var zero = document.getElementById("000");  
var uls = getDirectChildrenByTagName(zero, 'UL');
var ulCount = uls.length;
  ....
一个人的夜不怕黑 2024-12-18 11:56:38

试试这个:

var x = document.getElementById("000-1").querySelectorAll("li").length
                  console.log(">>>>", x);

Try this:

var x = document.getElementById("000-1").querySelectorAll("li").length
                  console.log(">>>>", x);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文