Javascript 字符串中的 HTML 元素数
Number of HTML elements inside a Javascript string
我想找到 JavaScript 字符串中存在的数字<li>
。
例如,如果,
var lis = "`<ul><li><a href='http://sitename/profile/udhayakumar'>udhayakumar</a></li><li><a href='http://sitename/profile/lovely'>lovely</a></li></ul>`";
然后如何找到<ul>
标签内的<li>
数。是否可以在不插入任何 DOM 元素的情况下获得它。
我不确定你说的"没有 DOM 元素可能"是什么意思。如果您的意思是在不使用页面的主 dom 树的情况下(这是可以理解的),那么是的。
至于使用单独的断开连接的树,或者只是一个断开连接的子树,那么您不想这样做是可以理解的。
var lis = "<ul><li><a href='http://example.org/profile/udhayakumar'>udhayakumar</a></li><li><a href='http://example.org/profile/lovely'>lovely</a></li></ul>";
var dom = document.implementation && document.implementation.createHTMLDocument("").body || document.createElement("body");
dom.innerHTML = lis;
alert(dom.getElementsByTagName("li").length);
http://jsfiddle.net/HrcuF/
您可以使用正则表达式。 请注意,除非您提出一个极其复杂的正则表达式,否则很难排除边缘情况(例如 在 html 中的字符串内<li>
标记)。 但是,如果您对预期的输入类型有足够的了解,那么您可以安全地忽略此类情况。
1. 计算<li>
数:
var pattern = /.*?(<li>)/g;
var count = 0;
var result = pattern.exec(lis);
while(result != null) {
count++;
result = pattern.exec(lis);
}
如果你有jquery,你可以这样做
$(lis).find('li').length
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML