在 div 中,具有属性 move_id
的元素(不一定是第 2 代)。
首先,想要获取集合的第一个和最后一个元素的最直接方式
尝试通过以下方式获得第一个和最后一个:
var first = div.querySelector('[move_id]:first');
var last = div.querySelector('[move_id]:last');
这个炸弹是因为 :first 和 :last 是我的一厢情愿(?)
不能使用 querySelectorAll
的数组方法,因为 NodeList
不是数组:
var first = (div.querySelectorAll('[move_id]'))[0];
var last = (div.querySelectorAll('[move_id'])).pop();
这个炸弹因为 NodeList
没有方法 pop()
(是的,可以在 NodeList 之上使用 Array 方法:
var first = div.querySelector('[move_id]');
var last = Array.prototype.pop.call(div.querySelectorAll('[move_id']));
这行得通,这就是我现在正在使用的,但认为必须有更直接的东西,我只是想念)
其次,需要根据 http://en.wikipedia.org/wiki/Tree_traversal 验证元素是否通过预排序深度优先遍历列出
原文由 cc young 发布,翻译遵循 CC BY-SA 4.0 许可协议
要访问第一个和最后一个元素,请尝试。
为了稳健性,添加索引检查。
是的,节点的顺序是深度优先的。 DOM 的
document order
定义为,