如何使用IE7的javascript计算HTML中的列表项
我正在尝试运行一个javascript,它将返回div中的列表(li)项计数。 我尝试过各种各样的脚本,但在IE7中没有一个能很好地工作 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
<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;