作为一名刚出来的前端菜鸟,有时候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对象的转换
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。