我正在运行以下代码来查找 ul 中 li 的计数。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("ul").each(function(index) {
alert($(this).find('li').size());
});
});
</script>
</head>
<body>
<ul/>
<ul></ul>
<ul><li>li1</li><li>li2</li></ul>
</body>
</html>
我收到警报为 2、0、2。为什么我把 li 的计数定为 2?如何让它为 0?
你不能像
这样<ul/>
自闭 ul 标签(至少在 HTML 中),所以它会包装你的其他两个ul
元素并以递归方式包含每个li
。 像第二个一样正确关闭您的 ul 标签,它可以工作。
HTML != XHTML
如果标头为 <!DOCTYPE html>
,请替换
<ul/>
由
<ul></ul>
只有 SVG 和 MathML 元素可以在适当的 HTML4 或 HTML5(非 XHTML)文档中自闭合。
这是因为您的第一个 ul 标签包装了其他 ul 标签。现在第一个 ul 标签有 2 个属于第三个 ul 的 li 标签。您的标记无效,我们将在不同的浏览器中获得不同的结果。