如何使用Javascript计算通过ajax返回的<li>的数量?</li>

时间:2010-09-13 05:19:06

标签: javascript jquery html

我有一个ajax代码,它将列表项返回为

<li>one</li>
<li>Two</li>

每次都会返回不同数量的<li>。我想检查它返回的<li>的数量。如何使用Javascript检查它。请帮助。

6 个答案:

答案 0 :(得分:7)

这里你去:

$(returnedHTML).find('li').length

这将使用返回的HTML并仅计算其中的订单项。

答案 1 :(得分:4)

ajaxHtml.split('<li').length - 1用于计算原始ajax html。

或者,element.getElementsByTagName("li").lengthelementLI代码的父容器。)

答案 2 :(得分:1)

你试过了吗?

var elements = document.getElementsByTagName('li');
var count = elements.length;

答案 3 :(得分:0)

如果你需要查看特定的列表,jQuery使它变得简单:

$(“DIV_NAME&gt; ul&gt; li”)。长度

答案 4 :(得分:0)

如果要测试的列表是从AJAX请求中作为字符串输入的,那么您只需将其视为字符串,而不是一组DOM对象。

看看这段代码。

var input = "<li>one</li><li>Two</li>";
var pattern = /<li>/gi;

var match;
var count = 0;
while(match = pattern.exec(input)) {
    count++;
}

alert("There are "+count+" occurences of <li> in the input string.");

我在这里做的是使用正则表达式来查找<li>不区分大小写(只是为了确定)和全局(将整个字符串视为要搜索的单个文本块)。< / p>

答案 5 :(得分:-2)

已修复:有些人认为我在链接点击事件上计算LI并且还没有从html响应中计算它。这是编辑过的答案。

如果你得到这样的HTML回复:

<强> myhtml.html:

<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

然后你的jQuery部分可能如下所示:

$.get('myhtml.html', function(data) {
   alert( $(data).find("li").length ); // 3
});