对jquery的调用方式很感兴趣,然后在网上找资料试着写了一个js代码,基本能实现jquery的链式调用,但是引用的时候发现和jquery还是差别很大,比如去掉字符串左右两边的空格,jquery是这样实现的$.trim(str),而我的代码必须是这样才可以$().trim(str),$后面要跟括号();
请教如何想jquery那样直接用$不加()?
代码:
<script>
(function(){
function _$(obj){
this._obj = document.getElementById(obj);
}
_$.prototype = {
trim:function(str){//去掉字符窜左右空格
return str.replace(/(^\s*)|(\s*$)/g,'');
},
text:function(str){//获取innerText
return this._obj.innerText;
}
}
window.$ = function(obj){
return new _$(obj);
}
})();
alert($().trim(' 空格 '));
//jquery代码 alert($.trim(' 空格 '));
</script>
感谢LionKissDeer回复,
window.$ = (function(obj){
return new _$(obj);
})();
改动之后
alert($.trim(' 空格 '));
这个解决,是我需要的,但是:
<div id="aa">内容</div>
alert($('aa').text());
这样代码出现问题
如 @LionKissDeer 所提到的,不同用户的函数放在不同的地方