原生JS点击当前对象删除同类元素的一个类,自己添加一个类

qq_35636850 2017-04-06 11:23:06
用原生JS写一个点击当前对象删除同类元素的一个类,自己添加一个类的语句,表示不太懂原生JS。。
效果类似于JQ的

$("#id li").click(function(){
$(this).addClass("cur");
$(this).siblings().removeClass("cur");
})
这种效果呢。。
求各位大佬解答。有代码最好咯。。
这是我实现的JS,但没删除同胞元素类的效果,只能添加

'clickfu':function (to) {
//回调函数,to为点击对象
to.setAttribute("class","cur");
},

附上JS效果。。
...全文
841 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35636850 2017-04-06
  • 打赏
  • 举报
回复
已经解决了,感谢版主的解答了
Go 旅城通票 2017-04-06
  • 打赏
  • 举报
回复
引用 2 楼 qq_35636850 的回复:
[quote=引用 1 楼 showbo 的回复:]
    'clickfu': function (to) {
        //回调函数,to为点击对象
        to.setAttribute("class", "cur");
        var siblings = to.parentNode.childNodes;
        for (var i = 0; i < siblings.length; i++)
            if (siblings[i].nodeType == 1 && siblings[i] != to) siblings[i].className = '';
    }
试下了这个,的确可以,不过相对于我这个结构还是不太行。 附上html结构图[/quote] 什么叫不太行?如果有兄弟节点有其他样式直接xxx.className=''会被去掉,这个需要用正则来替换掉cur样式才行,自己想下如何弄
qq_35636850 2017-04-06
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
    'clickfu': function (to) {
//回调函数,to为点击对象
to.setAttribute("class", "cur");
var siblings = to.parentNode.childNodes;
for (var i = 0; i < siblings.length; i++)
if (siblings[i].nodeType == 1 && siblings[i] != to) siblings[i].className = '';
}


试下了这个,的确可以,不过相对于我这个结构还是不太行。

附上html结构图
Go 旅城通票 2017-04-06
  • 打赏
  • 举报
回复
    'clickfu': function (to) {
        //回调函数,to为点击对象
        to.setAttribute("class", "cur");
        var siblings = to.parentNode.childNodes;
        for (var i = 0; i < siblings.length; i++)
            if (siblings[i].nodeType == 1 && siblings[i] != to) siblings[i].className = '';
    }

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧