鍍金池/ 問(wèn)答/HTML/ js鏈?zhǔn)秸{(diào)用的疑惑

js鏈?zhǔn)秸{(diào)用的疑惑

今天封裝了關(guān)于jq的siblings的函數(shù),想再封裝一個(gè)關(guān)于removeClass的函數(shù)并實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用,類(lèi)似于document.getElementById().siblings().removeClass()這樣的鏈?zhǔn)秸{(diào)用方式。嘗試了多次均不成功,可能是思路不對(duì),請(qǐng)多指點(diǎn)怎樣實(shí)現(xiàn)用js封裝jq的api并實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用,不勝感激。提供思路也可!

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,'')}
}
回答
編輯回答
不討喜

想要鏈?zhǔn)秸{(diào)用 return 必須是有后續(xù)調(diào)用方法的對(duì)象
你siblings方法最后return的是一個(gè)內(nèi)部的數(shù)組 他的原型上沒(méi)有對(duì)應(yīng)的方法 所以不成功

2017年11月20日 19:33
編輯回答
巴扎嘿
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,'')}
    }
}
2017年3月19日 20:19