【问题标题】:Dojo get next sibling based on current event targetDojo 根据当前事件目标获取下一个兄弟
【发布时间】:2011-10-13 07:01:39
【问题描述】:

我有这个下拉列表menu,我要做的就是在触发 onmouseenter 事件时,将下一个兄弟目标的左边框更改为白色。到目前为止,我可以轻松地解决 currentTarget 的左边界问题,但我找不到为下一个兄弟姐妹做同样事情的方法。有什么想法吗?

【问题讨论】:

    标签: dojo next siblings


    【解决方案1】:

    请试试这个

    dojo.query(evt.currentTarget).next()[0]
    

    【讨论】:

    • 非常感谢老兄,它就像一个魅力,可以作为一个跨浏览器的解决方案。我只需要放置一个 dojo.require("dojo.NodeList-traverse");在顶部。
    【解决方案2】:

    DOM 节点属性nextSibling 可用于获取下一个兄弟节点。见https://developer.mozilla.org/En/DOM/Node.nextSibling

    如果您想在获取下一个兄弟时应用一些过滤,例如获取具有特定 CSS 类名称的下一个兄弟,尝试使用 dojo.query。例如,

    dojo.query(node).siblings(".myClass")
    

    返回类名为 myClassnode 的兄弟节点列表。

    【讨论】:

    • 我认为 nextSibling 也可能返回 textnode。 nextElementSibling 将返回下一个兄弟元素节点
    • 感谢您的回复@Alex Cheng,虽然 rajkamal 是对的,但 nextSibling 确实返回了 textnode,这需要我检查 nodeTypes 以获得我想要的正确元素。 nextElementSibling 也可以,但在旧版本的 IE (
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多