【问题标题】:find siblings and addclass using javascript only仅使用 javascript 查找兄弟姐妹和 addclass
【发布时间】:2015-01-01 19:29:40
【问题描述】:

我想在 javascript 中为目标元素的兄弟姐妹添加类。我在使用 jquery 之前已经这样做了,这很容易。但是在我目前的组织中,他们不使用 jquery,我需要使用 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
}

【问题讨论】:

  • 旁注:getElementsByTagName() 返回的对象不是数组,而是HTMLCollection,而事件处理程序中的this 通常是指事件所在的 HTML 元素被附加到。

标签: javascript


【解决方案1】:

您可以使用 JS 中的基函数添加一个类 element.classList.add("anotherclass");(来自 MDN),在这里您将了解没有 jQuery 的兄弟姐妹:How to find all Siblings of currently selected object

【讨论】:

  • 我们可以用原型方法来做吗
  • @amit 为什么你认为 JavaScript Array 会在 HTML 元素的原型链中?不是。
  • 你必须得到周围其他人的帮助,因为我真的不习惯这种方式。至于数组/集合,函数getElementsByTagName()根据规范返回一个NodeList,它不是一个数组(w3.org/TR/DOM-Level-2-Core/core.html#ID-A6C9094)。
  • @Teemu:我认为它是数组的一部分。那么现在我们如何在 Html 集合或 html 元素中附加 proptotype 链
猜你喜欢
  • 2012-07-23
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
相关资源
最近更新 更多