1.Jquery 对象 和 dom 对象的逆转 / 如何判断一个对象时 jquery 对象还是 dom 对象标签:jquery,jQuery,test2,dom,对象,汇总,代码段,each From: https://blog.51cto.com/xxjjing/5805025
不管是jquery对象还是dom对象,都可以互转的,如果你只需要jquery对象的话
function(dom)
{
var mydom=$(dom);
}
如果你只需要简单的dom对象的话 :
function(dom)
{
var mydom=dom;
if(dom[0]) //这里可以判断dom[0]是否存在,如果存在肯定是jquery对象
{
mydom=dom[0]; //把jquery对象转成dom对象
}
}
2.jQuery 插件 return this.each中this问题解析
实例代码:
jQuery.fn.test2= function(){
this.css("background","#ff0");//这里面的this为jquery对象,而不是dom对象
return this.each(function(){ //遍历匹配的元素,此处的this表示为jquery对象,而不是dom对象
alert("this"+this+this.innerHTML); //提示当前对象的dom节点名称,这里的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。
})
}
jQuery.fn.test2 是 jquery 插件编写的方法,jQuery.fn只是jQuery.prototype原型对象的别名,如果把上面的jQuery.fn改成jQuery.prototype是一样的,即向jQuery对象里面添加test()方法,这样以后所有的jQuery对象就都能使用这个test()方法了
上面 return this.each() ,因为自定义一个 test2 插件,如果想实现jquery 方法连写就需要使用这种写法。这与 each 方法内部实现有关,如果没有显示的 return 语句, each 将返回调用当前 each 方法的jquery对象。
jquery方法连写实例:$('#test2').test().hide().height();