jquery对象转换成dom对象并传递

我们经常会用到setTimeout函数,setTimeout里面又经常会调用方法。例如:

setTimeout(‘tanchuang()’,500);

但是如果函数需要传参,以上方法就不适用了。

setTimeout(‘tanchuang(obj)’,500);//会报错

想要传参可以写成函数嵌套的方式:

timeout = setTimeout(function (){
tanchuang(obj);
},500);//正常执行

但是如果在jquery中我们可能需要传递当前的this对象:$(this)

这样硬传肯定会出错。但是我们可以把jquery对象先转换成dom对象:

var obj =$(this).get(0);//或者 $(this)[0]、 $(this).toArray()[0];

$(‘..’)方法的功能是在jquery内部调用了查询,根据定位方式获取符合条件的所有dom引用并返回一个jQuery对象,该对象是一个扩展的数组,所有查询的dom全放在这个数组中。 get(index)在jquery内部实际上是 return this[index]。所以得到的就是dom对象。

于是以上实例代码为:
var thisobj=$(this).get(0);
timeout = setTimeout(function (){
tanchu(thisobj);
},500);

function tanchu(obj){
$(obj).find(“.classname”).animate({width: 140},150)
}

未经允许不得转载:前端撸码笔记 » jquery对象转换成dom对象并传递

上一篇:

下一篇: