-2

我想找到<li>JavaScript 字符串中存在的数字。

例如。如果,

var lis = "`<ul><li><a href='http://sitename/profile/udhayakumar'>udhayakumar</a></li><li><a href='http://sitename/profile/lovely'>lovely</a></li></ul>`";

然后如何找到标签<li>内的 s数量。<ul>是否可以在不插入任何 DOM 元素的情况下获得它。

4

3 回答 3

5

我不确定您所说的“可能没有 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/

于 2012-08-10T13:14:42.163 回答
1

您可以使用正则表达式。请注意,除非您想出一个非常复杂的正则表达式,否则很难排除边缘情况(例如<li>,您的 html 中字符串中的标签)。但是,如果您对期望的输入类型有足够的了解,那么您可以安全地忽略这种情况。

1. 数个数<li>

var pattern = /.*?(<li>)/g;
var count = 0;
var result = pattern.exec(lis);
while(result != null) {
   count++;
   result = pattern.exec(lis);
}
于 2012-08-10T13:18:48.637 回答
-1

如果你有 jquery,你可以这样做

$(lis).find('li').length
于 2012-08-10T13:14:34.550 回答