Заказ элементов DOM - PullRequest
       1

Заказ элементов DOM

2 голосов
/ 23 апреля 2010

Учитывая два элемента DOM, скажем, a и b, как мы можем определить, что будет первым в документе?

Я реализую перетаскивание для набора элементов. И элементы могут быть выбраны в любом порядке, но когда они перетаскиваются, эти элементы необходимо перемещать в «правильном» порядке.

Ответы [ 2 ]

3 голосов
/ 23 апреля 2010

То, что вы ищете, это CompareDocumentPosition . PPK содержит сведения о совместимости браузера, а John Resig имеет версию для IE.

1 голос
/ 23 апреля 2010

Я думаю, что самый простой способ - дать им обоим что-то общее, что можно легко найти. Например, если они оба имеют одинаковый атрибут 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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...