javascript - 为 dom 元素添加额外的标识符

标签 javascript jquery html css

我有一堆像这样的列表格式的菜单项

<ul class="menu unselectable">
    <li class="group">
        Group Title
        <ul>
            <li class="groupItem i0">item 0</li>
            <li class="groupItem i1 over">item 1</li>
        </ul>
    </li>
    <li class="group">
        Another Group Title
        <ul>
            <li class="groupItem i2">item 2</li>
            <li class="groupItem i1">item 1 (if I hover here, the others should too</li>
        </ul>
    </li>
</ul>

我的想法是,如果我将鼠标悬停在类 i1 的一项上然后所有i1元素应该表现相同。所以我想到了加一个类over所有 i1当我像这样将鼠标悬停在任何元素上时。

$(".groupItem").hover(
    function () {
        $(this).addClass("over");
    },
    function () {
        $(this).removeClass("over");
    }
);

问题是除了 $(this) 之外,我想不出一种方法来识别刚刚悬停在哪个元素上.为了解决这个问题,我想添加 i1作为id到元素,但不同的 dom 节点不应该有相同的 id .我的下一个想法是添加属性 valueli元素,但无济于事(当我用 $(this).val() 进行快速测试时,无论 value 实际存储在节点中如何,都会返回 0。

有什么方法可以添加标识符,这样我就可以说 $(this).<someIdentifier> , 并定位所有具有该标识符的 dom 节点?

最佳答案

你可以添加一个属性 groupID="{id}" 然后调用 $(this).attr('groupID')

关于javascript - 为 dom 元素添加额外的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609922/

相关文章:

javascript - 为什么对象解构不起作用?

javascript - 为什么<tr/>元素的lastChild不是<td/>元素?

javascript - 在 expressJS 应用程序的静态目录中键入错误

javascript - 隐藏一定数量的列表对象

html - 使表格垂直和水平对齐

javascript - 按顺序动画跨度

javascript - 我应该使用哪种 jQuery 插件设计模式?

jquery - 如何将 JQuery 附加到不支持 jQuery 的页面?

javascript - 理解 myFunc(arg).something() 格式的 javascript 函数调用

jquery - 如果无法在浏览器中打开文件,则停止浏览器下载文件