订购DOM元素

时间:2010-04-23 08:04:46

标签: javascript dom

给定两个DOM元素,比如说a和b,我们如何确定哪个元素首先出现在文档中?

我正在为一组元素实现拖放。并且可以按任何顺序选择元素,但是当它们被拖动时,这些元素需要以“正确”的顺序移动。

2 个答案:

答案 0 :(得分:3)

您正在寻找的是compareDocumentPositionPPK具有浏览器兼容性详细信息,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");