Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算<;李>;使用Javascript通过ajax返回?_Javascript_Jquery_Html - Fatal编程技术网

如何计算<;李>;使用Javascript通过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; 修复:有些人认为我在计算链接点击事件的

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

<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中时,情况几乎不一样。