2015-01-01 23 views
1

我想在javascript中添加目標元素的同胞類。在使用jquery之前,我已經完成了它,這很容易。但在我目前的組織中,他們不使用jquery,我需要使用javascript來完成,這對我來說非常困難。使用javascript查找兄弟和添加類只有

我寫了一些代碼,將一個點擊功能附加到匹配的元素,但後來我沒有得到任何登錄到如何使它發生。 fiddle

var elements= document.getElementsByTagName('*'),i; 
i=0; 

while(elements[i]){ 
    if(elements[i].className=='c'){ 
     elements[i].addEventListener('click',function(){    
      this.jsSiblings().jsAddClass('newClass') 
      }) 
     } 
    i++ 
} 


Array.prototype.jsSiblings= function(){ 

//code 
} 

Array.prototype.jsAddClass=function(){ 

//code 
} 
+0

只是一個旁註:由'返回的對象getElementsByTagName()'不是一個數組,它是一個[HTMLCollection](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection),在事件處理程序中的'this'通常指HTML元素,該事件已被傳遞到。 – Teemu

回答

1

您可以使用JS的基礎功能,加個班,element.classList.add("anotherclass");(從MDN),在這裏你會發現有關的兄弟姐妹沒有jQuery的:How to find all Siblings of currently selected object

+0

我們可以用原型方法做到這一點 – Carlos

+0

@amit爲什麼你認爲JavaScript'Array'會出現在HTML元素的原型鏈中?不是這樣。 – Teemu

+0

你必須得到其他人的幫助,因爲我真的不習慣這種方式。至於數組/集合,函數'getElementsByTagName()'根據規範返回一個'NodeList',它不是一個數組(http://www.w3.org/TR/DOM-Level-2-Core/core html的#ID-A6C9094)。 – sodawillow