今天又一次仔细看了jq的文档,突然发现first有个坑,是自己理解错误,不知道有没有同学也遇到过,所以记录一下。
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8" />
<title>jquery first()踩过的坑。</title>
<meta name="author" content="" />
<script src="jquery-1.11.3.min.js"></script>
</head>
<body>
<form class="form">
<p>
<label>姓名:<input type="text" name="name"/></label>
</p>
</form>
</body>
</html>
<script>
console.log($(".form input, .form label").first()); //打印第一个
</script>
一开始觉得会打印出 input 的jq对象,但是发现结果不是这样的。
打印结果如下:
结果打印的是label对象,之前理解$(“.form input, .form label”)是选中选择器“.form input”和“ .form label”,“.form input”这个选择器在前面,所以放在jq数组里面肯定也是在前面,所以就会输出打印出 input 的jq对象,但是事实并非如此。
然后看一下DOM结构:
<p>
<label>姓名:<input type="text" name="name"/></label>
</p>
jq选择器的获取结果是跟DOM的顺序一样,跟选择器出现的顺序没有关系!
不知道有没有小白也跟我一样,以为是选择器出现先,那么获取结果就先出现呢。呵呵呵~!