我需要实现 jQuery 的 prevUntil()
的功能Vanilla JavaScript 中的方法。
我有几个 <div>
同一层级的元素:
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
我正在尝试使用 onclick
查找 event.target
的事件的 previousSiblings
直到达到某个标准(例如,类名匹配)然后停止。
我如何实现这一目标?
最佳答案
此答案之前已发布here回答类似的问题。
有几种方法可以做到这一点。
以下任何一项都可以解决问题。
// METHOD A (ARRAY.FILTER, STRING.INDEXOF)
var siblings = function(node, children) {
siblingList = children.filter(function(val) {
return [node].indexOf(val) != -1;
});
return siblingList;
}
// METHOD B (FOR LOOP, IF STATEMENT, ARRAY.PUSH)
var siblings = function(node, children) {
var siblingList = [];
for (var n = children.length - 1; n >= 0; n--) {
if (children[n] != node) {
siblingList.push(children[n]);
}
}
return siblingList;
}
// METHOD C (STRING.INDEXOF, ARRAY.SPLICE)
var siblings = function(node, children) {
siblingList = children;
index = siblingList.indexOf(node);
if(index != -1) {
siblingList.splice(index, 1);
}
return siblingList;
}
仅供引用:jQuery 代码库是观察 A 级 Javascript 的重要资源。
这是一个非常出色的工具,它以非常简化的方式显示 jQuery 代码库。 http://james.padolsey.com/jquery/
关于javascript - 如何在没有库的情况下在 Vanilla JavaScript 中实现 "prevUntil"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7354154/