javascript - 从 Array.prototype.indexOf.call 中排除某些元素
问题描述
var el = clickedElement;
var chl = el.closest('li');
var prt = chl.parentNode;
var idx = Array.prototype.indexOf.call(prt.children, chl);
我使用此代码从 parentNode 获取 clickedElement 的索引号..它大部分时间都有效..我希望能够从索引号中过滤掉一些元素
例如..
li.zero
li.first
h2
li.second
如果我尝试使用此代码将 li.second 元素作为索引 2,它会给我索引 '3',因为中间有 h3 标记。我怎样才能将某些元素排除在计数之外?
解决方案
您可以使用该Array.prototype.filter
方法。
它可能看起来像这样:
var idx = Array.prototype.indexOf.call(
Array.from(prt.children)
.filter(domNode => domNode.tagName.toLowerCase() === "li"),
chl
);
现在您将只检查列表项元素的索引。
推荐阅读
- javascript - Javascript onnclick 调用 ejs 中的函数
- javascript - 在Javascript中合并两个对象数组
- c - 头文件中数组的生命周期
- java - Java - 针对白名单的手动对象验证
- .net - 属性值无效:关键字不支持:“主机”?
- ios - iOS 应用程序无法在设备上正确显示
- php - 检查是否已在 PHP 中更新了 MySql 数据库
- android - 使用 RemoteViews 设置小部件按钮的可见性
- jquery - 如何使用 jQuery UI 获取可拖动和可调整大小元素的坐标
- python - 从 Python 的列表中为现有文件的每一行添加一个额外的字母