如何计算<;李>;使用Javascript通过ajax返回?
我有一个ajax代码,它将列表项返回为如何计算<;李>;使用Javascript通过ajax返回?,javascript,jquery,html,Javascript,Jquery,Html,我有一个ajax代码,它将列表项返回为 <li>one</li> <li>Two</li> 一个 两个 每次它都会返回不同数量的。我想检查它返回的的编号。如何使用Javascript检查它。请提供帮助。ajaxHtml.split(“您尝试过: var elements = document.getElementsByTagName('li'); var count = elements.length; 修复:有些人认为我在计算链接点击事件的
<li>one</li>
<li>Two</li>
一个
两个
每次它都会返回不同数量的
。我想检查它返回的
的编号。如何使用Javascript检查它。请提供帮助。ajaxHtml.split(“您尝试过:
var elements = document.getElementsByTagName('li');
var count = elements.length;
修复:有些人认为我在计算链接点击事件的LIs,而不是从html响应中计算。以下是编辑后的答案
如果您得到类似以下内容的html响应:
myhtml.html:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
$.get('myhtml.html', function(data) {
alert( $(data).find("li").length ); // 3
});
如果需要查看特定列表,jQuery会使其变得简单:
$(“DIV_NAME>ul>li”).length如果要测试的列表是从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.");
var-input=“one Two ”;
var模式=//gi;
var匹配;
var计数=0;
while(match=pattern.exec(输入)){
计数++;
}
警报(“输入字符串中出现“+count+” );
我在这里所做的是使用正则表达式来查找出现的
大小写(只是为了确定)和全局(将整个字符串视为要搜索的单个文本块)。这里:
$(returnedHTML).find('li').length
这将获取返回的html,并且只计算其中的行项目。我在普通html页面中也有项目。如果 的ajax页面返回,我只需要“否”即可。他想检查从ajax请求返回的li标记的数量,可能是在将元素添加到DOM之前。您的答案计算整个页面上的li
标记的总数page.完成了我的工作。谢谢。您是否正在尝试在不将返回的HTML附加到DOM的情况下计算行项标记?如果是,最简单的解决方案将是基于jQuery的,就像大多数DOM方法(即getElementsByTagNmae)一样不要处理文档片段。是的,在使用jQuery将其添加到DOMIs之前,我正在尝试计算ajax重新运行的 ,这样做是不可能的?如果不是,它将像$(returnedHTML)一样简单。find('li')).length
@ERIK Great非常好用!请添加此评论作为答案。我会勾选它。这太不必要了,以至于一点都不好笑。PHP在我看来像HTML。@安非他命机器:但它工作正常,我编写代码以快速检查。但你的评论太好笑了。拉塞尔·迪亚斯:我认为你没有用HTML ta编写PHP文件gs.奇怪的是,您使用的是jQuery,但没有真正使用它,$(“#ULs li”).length
会很好。无论哪种方式,这都会忽略AJAX部分。@sparr它绝对不会。该方法接受与我们可以传递给$()函数。将通过测试元素是否与此选择器匹配来过滤元素。
删除了我的注释,正在考虑另一个函数如果他的lis在returnedHTML中有一个容器,这将起作用,而当您发出ajax请求将lis附加到已存在的ul中时,情况几乎不一样。