Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
如何使用IE7的javascript计算HTML中的列表项_Javascript_Internet Explorer 7 - Fatal编程技术网

如何使用IE7的javascript计算HTML中的列表项

如何使用IE7的javascript计算HTML中的列表项,javascript,internet-explorer-7,Javascript,Internet Explorer 7,我正在尝试运行一个javascript,它将返回div中的列表(li)项计数。 我尝试过各种各样的脚本,但在IE7中没有一个能很好地工作 HTML- <ul class="ABC"> <li>1</li> <li>2</li> </ul> 一, 二, Javascript-document.querySelectorAll('ul.ABC li')。长度。这应该返回2,但在IE7中它不起作用 我知道I

我正在尝试运行一个javascript,它将返回div中的列表(li)项计数。 我尝试过各种各样的脚本,但在IE7中没有一个能很好地工作

HTML-

<ul class="ABC">
    <li>1</li>
    <li>2</li>
</ul>
  • 一,
  • 二,
Javascript-
document.querySelectorAll('ul.ABC li')。长度
。这应该返回2,但在IE7中它不起作用

我知道IE7不支持查询选择器,我正在寻找可以实现这一点的简单脚本。 有人知道我如何在IE 7中取得成功吗


谢谢

如果您可以为列表分配一个ID,则更容易:

<ul id="mylist">
如果这不是您的选择,则需要更高级和更复杂的内容:

function searchTagsForClass(tagName,className) {
    var tags = document.getElementsByTagBame(tagName), l = tags.length, i,
        match = new RegExp("\\b"+className+"\\b","i");
    for( i=0; i<l; i++) {
        if( tags[i].className.match(match)) return tags[i];
    }
}
searchTagsForClass("ul","ABC").children.length;
函数搜索标记ForClass(标记名,类名){
var tags=document.getElementsByTagBame(标记名),l=tags.length,i,
match=newregexp(“\\b”+className+”\\b,“i”);

对于(i=0;i,正如您所说,您已经知道,
querySelectorAll
在IE7中不受支持

如果您不能(或不想)通过使用ID或其他更简单的方法来选择相关元素来解决这个问题,那么您需要使用多边形填充

您可能希望尝试为旧IE版本实现
querySelectorAll
,以及其他功能

或者,总是有无处不在的jQuery。只需包含jQuery并用
$('ul.ABC li')
替换您的querySelector代码,工作就完成了

jQuery存在的历史原因是为了简化像这样的跨浏览器内容

function searchTagsForClass(tagName,className) {
    var tags = document.getElementsByTagBame(tagName), l = tags.length, i,
        match = new RegExp("\\b"+className+"\\b","i");
    for( i=0; i<l; i++) {
        if( tags[i].className.match(match)) return tags[i];
    }
}
searchTagsForClass("ul","ABC").children.length;