鍍金池/ 問答/HTML/ jquery中用$獲取dom元素的區(qū)別

jquery中用$獲取dom元素的區(qū)別

在Jquery中,使用$(this)獲取當前元素執(zhí)行removeClass方法是正常的,但是使用如下方式則會報錯
var doms= $(".layui-nav-itemed");
console.log($(this));
console.log($(this));
if(doms.length>1){
console.log(doms[0]);
doms[0].removeClass("layui-nav-itemed");
}

控制臺顯示如下

clipboard.png

實在是沒搞懂到底為啥報錯。。。

回答
編輯回答
硬扛

$()獲取的是jq對象,可以使用jq的方法。
var doms= $(".layui-nav-itemed");這里你只是把獲取到的對象賦給了原生jsDOM。原生js是不可以使用jq的方法的

2018年3月27日 05:09
編輯回答
浪婳

doms[0] 是一個原生的HTMLElement,不是Jquery 對象,當然不能用jquery的方法啦

2017年12月15日 14:14
編輯回答
任她鬧

doms[0]代表的是dom對象,而這個方法是jquery對象的方法

2017年7月23日 04:47
編輯回答
淚染裳

doms[0]是原生js的dom節(jié)點了,這個沒有jq的一系列方法了,應該用
doms[0].classList.remove("layui-nav-itemed")

2018年3月23日 09:24
編輯回答
鐧簞噯

jQuery幫助我們的就是更快速的獲取dom節(jié)點和提供的方法以及鏈式調用,你的第一句話的doms實際上jquery幫助你得到的dom原生節(jié)點集,而原生節(jié)點是不具備jquery的removeClass方法的,如果想要使用jquery的方法,最后一句可以改為$(doms[0]).removeClass,就可以了

clipboard.png
操作第一個元素把背景色從黑色改成了暗紅色

clipboard.png

2018年2月22日 08:14
編輯回答
遲月

首先需要明確:

1.$() 方法獲取的是 jQuery對象,可以使用jQuery的所有方法
2.jQuery對象和 DOM對象相互轉化的方法:
    JQuery 轉 DOM方法:
    var $v =$("#v") ; //jQuery 對象 
    var v=$v[0];      //DOM 對象 
    
    DOM 轉 JQuery:
    var v=document.getElementById("v"); //DOM對象 
    var $v=$(v); //jQuery對象 

明確了上面的兩點之后再看這個問題:
doms[0] 已經是 DOM 對象了,DOM 對象是沒有 removeClass 方法,因為不是 jQuery 對象
可以使用 $(doms[0]).removeClass

2017年9月30日 02:51