2009-09-24 52 views
0

很抱歉,如果这是一个愚蠢的问题,关于将简单函数转换为JQuery的问题?

我有一个像JavaScript函数:

Test.prototype.createElement = function() 
{ 
this.oCanvas = document.body; 
var oDiv = document.createElement('div'); 
oDiv.style.position = "absolute"; 
this.oCanvas.appendChild(oDiv); 
return oDiv; 
} 

虽然这个功能转换为jQuery的,我这样做:

Test.prototype.createElement = function() 
{ 
this.oCanvas = document.body; 
var oDiv = $('<div />').attr("postion", "absolute"); 
$(this.oCanvas).append(oDiv); 
return oDiv; /* ****** This is not correct I think ******* */ 
} 

还是有更好的方法?

回答

2

你更好的选择是:

Test.prototype.createElement = function() 
{ 
    var oDiv = $('<div />').css("position", "absolute"); 
    $('body').append(oDiv); 
} 

我假设你的元素必须是空的一个原因,需要在您的文档正文的结尾有个理由的上涨。

+0

不错,但我怎么返回oDiv,在原有的功能,这是一个JavaScript对象,但在转换一个是一个jQuery对象。 – Samuel 2009-09-24 02:54:52

+0

另外,我在转换函数中使用了这个.Canvas,因为这是一个更大的函数的一部分,我截断了它以显示相关部分。 – Samuel 2009-09-24 02:56:38

+0

可能是一个很好的起点是这篇文章:http://stackoverflow.com/questions/1302428/what-does-jquery-actually-return。它基本上解释了jQuery函数如何总是返回一个包装集合。所以在你的javascript中,你找回了一个对象。你仍然得到一个,但现在它的结构,使jQuery能够进一步操作。 – 2009-09-24 03:15:54

1

如果你想返回实际DOM对象而不是jQuery对象使用:

return oDiv[0]; 
+0

我看到这个使用debgger,但没有在任何参考中找到它。 – Samuel 2009-09-24 03:20:29

+0

文档中的参考资料位于:http://docs.jquery.com/Core/get#index – Jataro 2009-09-24 11:56:45