javascript - 检查元素(DOM 节点)是否是 sibling

标签 javascript jquery dom

如何判断两个DOM元素是否是兄弟?

示例 DOM 结构:

<div>
    <a></a>
    <b></b>
    <p></p>
</div>
<i></i>

测试是否<b><a> 的 sibling 但不是 <i>

最佳答案

jQuery:

var a = $('a'),
    b = $('b'),
    i = $('i');

a.siblings().is(b); // true (since "b" is sibling of "a")
a.siblings().is(i); // false (since "i" is sibling of "div" and not of "a")
a.siblings().is(a); // false (can't be singling of itself)

Vanilla :

const elm_p = document.querySelector('p');
const elm_a = document.querySelector('a');
const elm_i = document.querySelector('i');

const areSiblings = (elm1, elm2) => 
  elm1 != elm2 && elm1.parentNode == elm2.parentNode;

// tests
[
  [elm_p, elm_a], // true
  [elm_a, elm_p], // true
  [elm_a, elm_a], // false
  [elm_a, elm_i]  // false
].forEach(([a,b]) => console.log(areSiblings(a,b)))
<div>
    <a></a>
    <b></b>
    <p></p>
</div>
<i></i>

关于javascript - 检查元素(DOM 节点)是否是 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37277378/

相关文章:

javascript切换功能导致页面滚动到顶部

javascript - 将 JavaScript 合并到 HTML 中以创建 pantone 样式的栏

javascript - 使用下拉列表过滤数据表列

javascript - 使用 Jquery 更改检查单选按钮 ID

javascript - 在 JavaScript 中从 JSON 加载内容之前返回值

javascript - Chrome 扩展 : contentscript not working on local page?

javascript - 有没有办法直接用 jquery 修改 DOM 元素的属性?

jQuery:它添加类,删除类本身?

javascript - 如何将一个div放在另一个div的顶部

javascript - 同一类中多个元素上的 jQuery .text()