首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据id计数div元素

根据id计数div元素
EN

Stack Overflow用户
提问于 2009-11-07 22:01:21
回答 2查看 7.6K关注 0票数 0

我有一个类似以下内容的页面:

代码语言:javascript
运行
复制
<div id="content">
<div id="boxes">
  <div id="box:content:1:text" />
  <div id="box:content:2:text" />
  <div id="another_id" />
  <div id="box:content:5:text" />
</div>
</div>

我想知道id与表达式box:content:X:text (其中X是一个数字)匹配的div的数量。我可以使用纯javascript或jquery来做到这一点。

但是在框中,我可以有几种我不想计算的div ("another_id"),我可以有一个元素和下一个元素的X之间的间隙,它们不是按顺序排列的。

我一直在寻找一种方法来获取基于regexp的元素,但是我没有找到任何有趣的方法。这是一种可行的方法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-07 22:11:06

jQuery:

代码语言:javascript
运行
复制
$("div[id]").filter(function() {
    return !(/^box:content:\d+:text$/.test(this.id));
}).size();

纯JavaScript:

代码语言:javascript
运行
复制
var elems = document.getElementsByTagName("div"),
    count = 0;
for (var i=0, n=elems.length; i<n; ++i) {
    if (typeof elems[i].id == "string" && /^box:content:\d+:text$/.test(this.id)) {
        ++count;
    }
}
票数 4
EN

Stack Overflow用户

发布于 2009-11-07 22:21:41

要扩展Boldewyn的注释,您可以提供由空格分隔的多个类,然后单独或组合使用这些类。

这可能会消除对in的需要,但我将它们保留在以下位置以防万一:

代码语言:javascript
运行
复制
<div id="content">
<div id="boxes">
  <div id="box:content:1:text" class="box content 1 text" />
  <div id="box:content:2:text" class="box content 2 text" />
  <div id="another_id" />
  <div id="box:content:5:text" class="box content 5 text" />
</div>
</div>

然后,使用jQuery,您可以使用以下命令来计算所需的项目:

代码语言:javascript
运行
复制
$j('#content>#boxes>.box.content.text').length

(或者可能只使用'#boxes>.box.text'或任何适合您尝试匹配的内容)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1693109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档