Javascript 字符串中的 HTML 元素数

Number of HTML elements inside a Javascript string

本文关键字:元素 HTML 字符串 Javascript      更新时间:2023-09-26

我想找到 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