从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获得clickelement的索引号。大多数时候都有效。我希望能够从索引号

中过滤出一些元素例如.

li.zero
li.first
h2
li.second

如果我尝试这段代码得到li。第二个元素作为索引2,它给我索引'3',因为中间的h3标签。如何从计数中排除某些元素?

您可以使用Array.prototype.filter方法。

它可能看起来像这样:

var idx = Array.prototype.indexOf.call(
Array.from(prt.children)
.filter(domNode => domNode.tagName.toLowerCase() === "li"), 
chl
);

现在您将只检查列表项元素的索引。

相关内容

  • 没有找到相关文章

最新更新