原来对于ID唯一性的理解居然以为是在一个项目中ID号得是唯一的.
然而,今天在学习的时候:
id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的
因而在不同的页面使用相同的ID号还是可以的.
然后再比较jquery的类选择器与js原生getElementByClassName()函数的实现代码.
我发现和我原来理解的是不一样的.
就是选择单个和多个的区别.
原话是:
jQuery除了选择上的简单,而且没有再次使用循环处理
因而jQuery是多选的,而js原生getElementByClassName()函数是单选的.
相同的操作两种方法实现:
<script type="text/javascript">
//通过原生方法处理
//样式是可以多选的,所以得到的是一个合集
//需要通过循环给合集中每一个元素修改样式
var divs = document.getElementsByClassName('aaron');
for (var i = 0; i < divs.length; i++) {
divs[i].style.border = "3px solid blue";
}
</script>
<script type="text/javascript">
//通过jQuery直接传入class
//class选择器可以选择多个元素
$('.immoc').css("border", "3px solid red");
</script>
结论是:
不难想到$(".imooc").css()方法内部肯定是带了一个隐式的循环处理,所以使用jQuery选择节点,不仅仅只是选择上的简单,同时还增加很多关联的便利操作.
然后同样要区分选择多个和单个的区别的是
jQuery的$('element')与js原生的getElementByTagName('element');
和js原生的方法相比,jQuery对于兼容性上的优势:
使用原生的js防火获取到对应节点时--
- IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName里面会包含注释节点,这个通常是不应该的
- getElementById的参数在IE8及较低的版本不区分大小写
- IE7及较低的版本中,表单元素中,如果表单A的name属性名用了另一个元素B的ID名并且A在B之前,那么getElementById会选中A
- IE8及较低的版本,浏览器不支持getElementsByClassName
天气变冷了,关键是还没哟空调哈,手冻,没做笔记了,手冻,冷,哈哈