给定两个DOM元素,比如说a和b,我们如何确定哪个元素首先出现在文档中?
我正在为一组元素实现拖放。并且可以按任何顺序选择元素,但是当它们被拖动时,这些元素需要以“正确”的顺序移动。
答案 0 :(得分:3)
您正在寻找的是compareDocumentPosition。 PPK具有浏览器兼容性详细信息,John Resig具有IE版本。
答案 1 :(得分:1)
我认为最简单的方法是给他们两个可以轻松查找的常见内容。例如,如果它们都具有相同的name
属性,则可以使用getElementsByName
,它将按照它们在文档中出现的顺序返回元素的集合:
var els = document.getElementsByName("myName");
此处els[0]
将包含文档的第一个元素,els[1]
将包含第二个元素。
使用选择器,您可以通过使用组合,
选择器分隔符来实现相同的功能:
var els = document.querySelectorAll("#el1, #el2");
唯一的缺点是querySelectorAll()
仅支持更新的浏览器(因此排除了IE6 / 7)。另一种方法是使用像jQuery这样的框架:
var els = $("#el1, #el2");