Javascript 对DOM元素排序
给定两个DOM元素,比如a和b,我们如何确定文档中哪一个先出现Javascript 对DOM元素排序,javascript,dom,Javascript,Dom,给定两个DOM元素,比如a和b,我们如何确定文档中哪一个先出现 我正在为一组元素实现拖放。元素可以按任何顺序选择,但当拖动它们时,这些元素需要按“正确”的顺序移动。我认为最简单的方法是为它们提供一些常见的东西,以便轻松查找。例如,如果它们都具有相同的name属性,则可以使用getElementsByName,它将按照元素在文档中的显示顺序返回元素集合: var els = document.getElementsByName("myName"); 在这里,els[0]将包含文档的第一个元素,e
我正在为一组元素实现拖放。元素可以按任何顺序选择,但当拖动它们时,这些元素需要按“正确”的顺序移动。我认为最简单的方法是为它们提供一些常见的东西,以便轻松查找。例如,如果它们都具有相同的
name
属性,则可以使用getElementsByName
,它将按照元素在文档中的显示顺序返回元素集合:
var els = document.getElementsByName("myName");
在这里,els[0]
将包含文档的第一个元素,els[1]
将包含第二个元素
使用选择器,您可以通过使用组合的,
选择器分隔符来实现同样的效果:
var els = document.querySelectorAll("#el1, #el2");
唯一的缺点是,querySelectorAll()
仅受较新浏览器支持(因此排除了IE6/7)。另一种方法是使用如下框架:
你要找的是。具有浏览器兼容性详细信息,并且具有IE版本。可以假定他正在比较的两个元素具有相同的标记名。@austin cheney:您将
getElementsByName
与getElementsByTagName
混淆了getElementsByName
检索具有相同名称属性的所有元素,例如Hello
。此外,我还添加了其他替代方法。只允许少数元素具有name属性。getElementsByTagName创建具有指定标记名的所有元素的数组。如果op需要比较同一标记名的两个元素,那么该方法将不起作用,因为这两个元素都将不明确地包含在指定的数组中。换句话说,例如,getElementsByTagName在两个div元素之间没有应用足够的消歧功能。@Austin Cheney:这就是为什么我不推荐getElementsByTagName
,首先,你的观点是什么?
var els = $("#el1, #el2");