标题可能有点绕,大致意思就是通过$()
,把一个字符串str = "hello"
转成了jQuery对象,如何获取到原字符串的值。为什么会有这种需求呢?因为今天封装一个处理字符串的jQuery方法时发现了这个问题。
$.fn.extend({
removeLeftSpace: function(){
return this.replace(/^\s+/g, "");
}
})
var str = " hello world ";
$(str).removeLeftSpace();
方法里的this
是jQuery对象,并没有原生的replace方法,所以如何获取到原串成了主要问题。网上查了一下也没有查到方法,可能是真的没这种需求吧,于是就自己琢磨了一下,既然字符串被封装成了jQuery对象,那么原串肯定还在jQuery对象里,那就看下他的结构,直接输出就好了。
$.fn.extend({
removeLeftSpace: function(){
console.log(this);
}
})
var str = " hello world ";
$(str).removeLeftSpace();
结果很喜人,找到了原串的位置,那么下面就直接把他提取出来就好了,通过键值对中的key(selector)就行了。
$.fn.extend({
removeLeftSpace: function(){
console.log(this.selector);
}
})
var str = " hello world ";
$(str).removeLeftSpace();
网友评论