我已经在我自己的个人JavaScript库上工作了一段时间,它运行正常。但我一直在想jQuery返回对象。
假设您的DOM中有几个div并且您使用$("div")
选择它们jquery实际上会在控制台日志中返回所选节点(作为对象/数组?),您可以将鼠标悬停在它们上面以查看它们在文件中的位置。
我的对象实际上返回整个对象本身,所以如果你调用kj("div")
(其中kj
是我的对象名称),它会在控制台日志中显示如下:
> kj
> elements: Array[10]
> length : 10
> more stuff
我的问题是,如何让它返回类似jQuery的内容?
提前致谢。
答案 0 :(得分:3)
JQuery挂起它自己对一个对象的引用,而这个对象反过来引用了dom中的东西。这些引用比仅仅附加事件的“html内容”稍微复杂一些。 JQuery还有非常高效的“选择器”,可以迭代dom并构建这些引用。
我不得不说我同意Scrum Meister。如今,即使是微软的开发,JQuery也是一个公认的标准(WOOHOO!)。为什么不使用它?
答案 1 :(得分:3)
我认为你要找的是在jQuery中,元素数组是主要对象,方法和其他信息作为属性连接到该数组。
function $$(tagname){
var x = document.getElementsByTagName( tagname );
x.moreStuff = true;
return x;
}
var d = $$('div');
因为typeof Array === 'object'
您可以随意将方法和属性附加到数组中。
答案 2 :(得分: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()
.......
.......
.......