shilei0 2019-06-20
作为一名刚出来的前端菜鸟,有时候jq对象和dom对象概念理解的不是很深入。空闲时间写点东西来理解一下。
代码如下
<div id="dome"> <div class="b" str="1">1111</div> <div class="b" str="2">222</div> <div class="b" str="2">333</div> <div class="b" str="2">444</div> <div class="b" str="1">555</div> </div> <script> $(function(){ $("div[class='b'][str='1']").css("background","red"); $(".b").eq(0).attr("str"); //可以获取到这个对象的属性str的值。 $(".b")[0].attr("str"); //报错 }) </script>
$(".b").eq(0)获取的对象如下
$(".b")[0]获取的对象如下
$(".b").eq(0)
和$(".b")[0]
获取的是同一个对象,为什么$(".b")[0].attr("str")
会报错jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,原来jQuery 获得的对象并不和我们平时使用getElementById获得的对象是一样的对象。所以一些新手就很迷惑,为什么${”#Element”}
不能直接 innerHTML,这就是原因所在。*
dom对象正确获取属性:$(".b")[0].style.color
dom对象正确获取自定义属性:$(".b")[0].attributes['str'].nodeValue
可以了解下dom对象和jq对象的转换
Vue和React是数据驱动视图,如何有效控制DOM操作?能不能把计算,更多的转移为js计算?因为js执行速度很快。patch函数-->patch,对比tag,对比tag与key,对比children