今天封装了关于jq的siblings的函数,想再封装一个关于removeClass的函数并实现链式调用,类似于document.getElementById().siblings().removeClass()这样的链式调用方式。尝试了多次均不成功,可能是思路不对,请多指点怎样实现用js封装jq的api并实现链式调用,不胜感激。提供思路也可!Element.prototype.siblings=function siblings(){ var siblingsElement=[]; var parentAllElement=[]; if(! this.parentNode){ return siblingsElement; }; parentAllElement=this.parentNode.getElementsByTagName(this.tagName) for(var i=0,len=parentAllElement.length;i<len;i++){ if(parentAllElement[i]!=this) siblingsElement.push(parentAllElement[i]); } return siblingsElement; }var hasClass=function(element,oClass){ return element.className.match(new RegExp('(^|\\s)' + oClass + '(\\s|$)')); }var removeClass=function(element,oClass){ var cls=new RegExp('(^|\\s)' + oClass + '(\\s|$)'); if(hasClass(element,oClass)){ element.className=element.className.replace(cls,'')}}
2 回答

一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
Element.prototype.removeClass=function(oClass){
var cls=new RegExp('(^|\\s)' + oClass + '(\\s|$)');
for(var i = 0; i < this.length; i++ ) {
if(hasClass(this[i],oClass)){
element.className=this[i].className.replace(cls,'')}
}
}
添加回答
举报
0/150
提交
取消