如何在JS中调用jQuery内部的函数或对象

JavaScript010

如何在JS中调用jQuery内部的函数或对象,第1张

函数是可以调用的,方法就不能调用,还有,JQ的函数里的对象是JQ,而JS和JQ的方法不能混着用,如果你JQ想用JS的方法就把对象转成JS对象,如果JS想用JQ的方法就把JS对象转成JQ对象

1

2

3

4

5

6

7

// JS获取对象

var obj = document.getElementById('id')

// 把JS对象转换到jQuery对象

var $obj = $(obj)

var $obj = $('#id')

// jQuery对象转换到JS对象

var obj = $obj.get(0)

可以这样

<script type="text/javascript">

var a=function(){

this.x=1

var parent = this

this.b=function(){

this.x=2

alert("parent.x "+parent.x)

}

}

var c=new a()

c.b()

 var $=(function(){var b=/(?:[\w\-\\.#]+)+(?:\[\w+?=([\'"])?(?:\\\1|.)+?\1\])?|\*|>/ig,g=/^(?:[\w\-_]+)?\.([\w\-_]+)/,f=/^(?:[\w\-_]+)?#([\w\-_]+)/,j=/^([\w\*\-_]+)/,h=[null,null]function d(o,m){m=m||documentvar k=/^[\w\-_#]+$/.test(o)if(!k&&m.querySelectorAll){return c(m.querySelectorAll(o))}if(o.indexOf(",")>-1){var v=o.split(/,/g),t=[],s=0,r=v.lengthfor(s<r++s){t=t.concat(d(v[s],m))}return e(t)}var p=o.match(b),n=p.pop(),l=(n.match(f)||h)[1],u=!l&&(n.match(g)||h)[1],w=!l&&(n.match(j)||h)[1],qif(u&&!w&&m.getElementsByClassName){q=c(m.getElementsByClassName(u))}else{q=!l&&c(m.getElementsByTagName(w||"*"))if(u){q=i(q,"className",RegExp("(^|\\s)"+u+"(\\s|$)"))}if(l){var x=m.getElementById(l)return x?[x]:[]}}return p[0]&&q[0]?a(p,q):q}function c(o){try{return Array.prototype.slice.call(o)}catch(n){var l=[],m=0,k=o.lengthfor(m<k++m){l[m]=o[m]}return l}}function a(w,p,n){var q=w.pop()if(q===">"){return a(w,p,true)}var s=[],k=-1,l=(q.match(f)||h)[1],t=!l&&(q.match(g)||h)[1],v=!l&&(q.match(j)||h)[1],u=-1,m,x,ov=v&&v.toLowerCase()while((m=p[++u])){x=m.parentNodedo{o=!v||v==="*"||v===x.nodeName.toLowerCase()o=o&&(!l||x.id===l)o=o&&(!t||RegExp("(^|\\s)"+t+"(\\s|$)").test(x.className))if(n||o){break}}while((x=x.parentNode))if(o){s[++k]=m}}return w[0]&&s[0]?a(w,s):s}var e=(function(){var k=+new Date()var l=(function(){var m=1return function(p){var o=p[k],n=m++if(!o){p[k]=nreturn true}return false}})()return function(m){var s=m.length,n=[],q=-1,o=0,pfor(o<s++o){p=m[o]if(l(p)){n[++q]=p}}k+=1return n}})()function i(q,k,p){var m=-1,o,n=-1,l=[]while((o=q[++m])){if(p.test(o[k])){l[++n]=o}}return l}return d})()

(此选择器为一外国人padolsey所写,名为mini)

支持以下获取方式:

//以标签获取元素

$("tag")

//以id获取元素

$("#id")

//以类名获取元素

$(".className")

//支持层级嵌套选取

$("tag >.className")

$("tag >tag")

$("#id >tag.className")

$("span >* >b")

//支持获取子孙元素

$(".className tag")

//支持同时并列选择器选取

$("tag, tag, #id")

$("tag#id.className")