2011-03-06 89 views
7

我一直在为自己的个人JavaScript库工作了一段时间,并且工作正常。但我一直想知道jQuery的返回对象。jquery究竟返回什么对象?

可以说你有几个div在你的DOM中,你选择他们$("div") jquery实际上会返回控制台日志中的选定节点(作为一个对象/数组?),你可以将它们鼠标移到它们的位置在文件中。

我的对象实际上返回整个对象本身,因此,如果调用kj("div")(其中kj是我对象名字)就说明了这样的控制台日志:

> kj 
    > elements: Array[10] 
    > length : 10 
    > more stuff 

我的问题是,我怎么能让它返回类似jQuery的东西?

在此先感谢。

+5

*我怎样才能让它返回类似jQuery的*为什么重新发明轮子?有没有什么你试图做的,jQuery不能? – 2011-03-06 04:40:05

+3

为了改进程序员的目的,重新发明车轮没有任何问题。 – 2011-03-06 05:35:28

+0

@Eric,不。我们都应该决定一个框架来统治它们,并抛出其他所有东西。当我们处理它时,不妨使用一种语言并将其他语言抛弃。节点可以照顾服务器,并为客户端定期提供'JS'。 [/ sarcarrogance] = P – 2011-03-06 06:04:20

回答

3

我认为你要找的是在jQuery中元素数组是主要对象,方法和其他信息作为属性连接到该数组。

function $$(tagname){ 
    var x = document.getElementsByTagName(tagname); 
    x.moreStuff = true; 
    return x; 
} 

var d = $$('div'); 

因为typeof Array === 'object'您可以任意地将方法和属性附加到数组。

0

在此页面打开控制台并执行console.log($('#custom-header')),您将得到结果。我认为,jQuery会返回一个对象,其中使用了以下方法和属性,如hide()show()。我认为最好使用jquery来创建另一个库。

>>> console.log($('#custom-header')) 
[div#custom-header] 



0 
    div#custom-header 


context 
    Document what-is-the-jquery-returned-object-exactly 


jquery 
    "1.4.4" 


length 
    1 


selector 
    "#custom-header" 


init 
    function() 


TextAreaResizer 
    function() 


_toggle 
    function() 


add 
    function() 


addClass 
    function() 


addSpinner 
    function() 


addSpinnerAfter 
    function() 


after 
    function() 


ajaxComplete 
    function() 


ajaxError 
    function() 


ajaxSend 
    function() 


ajaxStart 
    function() 


ajaxStop 
    function() 

    ....... 
    ....... 
    ....... 
3

JQuery将它自己引用的对象引用到dom中的事物中。这些引用比“html的内容”复杂一点,因为有附加事件。 JQuery还具有非常高效的“选择器”,它遍历dom并构建这些引用。我不得不说我赞同Scrum Meister。 JQuery现在甚至是微软开发中的公认标准(WOOHOO!)。为什么不使用它?