удалить div без тега id - PullRequest
2 голосов
/ 17 мая 2011

Мне нужно решение для удаления div без тега ID только в JavaScript. Div выглядит следующим образом <div align="center">.

Вот полная структура.

<tr id="-1">
  <td class="stxt">
    <div align="center">
    </div>
  </td>
</tr>

Ответы [ 3 ]

3 голосов
/ 17 мая 2011

Вам нужно выяснить, как получить ссылку на него, как только вы это сделаете, вы можете удалить его, используя:

div.parentNode.removeChild(div);

Конечно, атрибут align имеетустарела, но в любом случае вы можете найти div с помощью align="center", используя:

var divs = document.getElementsByTagName('div');
var div;
var i = divs.length;

while (i--) {
  div = divs[i];

  if (div.getAttribute('align') == 'center') {
    div.parentNode.removeChild(div);
  }
}

, который удалит каждый div в документе, который имеет align="center".

Обратите внимание, что объектgetElementsByTagName возвращает NodeList .Если вы перебираете его с 0 и удаляете узлы, они удаляются из действующего списка, поэтому вы пропустите узел, следующий за удаленным, и в конце попытаетесь получить доступ к не существующим узлам.Перемещение по списку назад позволяет избежать этих ловушек.Альтернативой является превращение NodeList в массив, но это несколько неэффективно.

Редактировать

Поскольку вы редактировали вопрос, вот ответ на обновление.

Вы можете получитьссылка на TR с использованием getElementById :

var root = document.getElementById('-1');

Теперь вы можете перейти в DOM:

var cell = root.cells[0]; // First cell in the row
var div = cell.getElementsByTagName('div')[0]; // first div
cell.removeChild(div);

, которая характерна для опубликованной вами структуры.

1 голос
/ 17 мая 2011

Если вы можете просто удалить контент, вы можете использовать:

var all = document.getElementsByTagName("div");
for(i=0; i < all.length; i++) {
    all[i].innerHTML = ""
}

См. http://jsfiddle.net/7KVkC/

0 голосов
/ 17 мая 2011

Вам нужен способ сделать этот тег div уникальным. Есть еще одна функция javascipt под названием getElementsByTagName, которую вы можете использовать для получения массива всех тегов div. Затем вы можете использовать DOM, чтобы проверить, имеет ли этот тег div свойство align="center".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...