javascript - 如何选择下一个没有特定 CSS 类的 div

标签 javascript html dom

<div id="button">
Click me
</div>

<div id=item1> //loads with a dashed border
</div>

<div id=item2> //loads with a solid border
</div>

<div id=item3> //loads with a solid border
</div>

脚本部分:

var eventNext = document.getElementById("button");
eventNext.addEventListener("click", move, false);

function move()
{

}

我应该在 move 函数中放置什么来获取下一个没有虚线边框的 div 项目,并使其变为虚线,并将当前项目的边框变为实线? (如果有下一项)?

最佳答案

var eventNext = document.getElementById("button");
eventNext.addEventListener("click", move, false);

function move() {
    if( eventNext ) {
        if( eventNext.id !== 'button' ) {
            eventNext.className = 'solidBorder';
        }
        eventNext = eventNext.nextElementSibling;
        if( eventNext ) {
            eventNext.className = 'dashBorder';
        }
    }
}

.dashBorder {
    border: 2px dashed blue;
}
.solidBorder{
    border: 2px solid blue;
}

或者使用 jquery

var eventNext = $("#button").bind("click", move);

function move() {
    if( eventNext.length ) {
        if( eventNext.attr('id') !== 'button' ) {
            eventNext.attr( 'class', 'solidBorder' );
        }
        eventNext = eventNext.next();
        if( eventNext.length ) {
            eventNext.attr( 'class', 'dashBorder' );
        }
    }
}

如果您需要支持不支持 nextElementSibling 的浏览器,请改用此函数。

function next( elem ) {
    while( (elem = elem.nextSibling) && (elem.nodeType !== 1) );
    return elem;
}

关于javascript - 如何选择下一个没有特定 CSS 类的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291248/

相关文章:

javascript - mootools 显示/隐藏 div 取决于是否选中复选框

javascript - Vue中如何让组件标签以前缀开头?

javascript - 如何在 QML 上使用 JavaScript 库

javascript - js中如何检测元素导航的状态?

java - Java中如何修改XML标签?

javascript - 使用 Rangy 的 iOS 风格格式化标注

javascript - 基于Javascript元素根据位置获取元素节点

javascript - 检查某些值是否匹配多个值的最佳方法是什么?

html - CSS 下拉菜单在 Google Chrome 中无法正常工作(悬停时子菜单消失)

jquery - HTML 背景图像闪烁