Динамически заменить HTML-теги - PullRequest
1 голос
/ 18 декабря 2009

Я пытаюсь заменить некоторые HTML-теги, которые создаются сценарием ajax. Ajax-скрипт генерирует следующий список ul:

<ul>
  <li class="odd">some text</li>
  <li class="even">some text</li>
  <li class="odd"><hr /></li>
  <li class="even">some text</li>
</ul>

Мне нужно заменить <li class="odd"><hr /></li> на </ul><hr /><ul>. Я предполагаю, что это должен быть некоторый JavaScript, чтобы динамически заменять эти теги каждый раз, когда генерируется список, но я не знаю, как это сделать точно. Не могли бы вы указать мне правильный путь?

Любая помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Во-первых, вы должны назначить свой идентификатор таким образом, чтобы к нему было проще получить доступ:

<ul id='myTag'>
    [...]
</ul>

Затем вы можете использовать манипулирование строками и свойство innerHTML , чтобы делать то, что вы хотите:

var html = document.getElementById('myTag').innerHTML;
document.getElementById('myTag').innerHTML = html.replace('<li class="odd"><hr /></li>', '</ul><hr /><ul>');

Конечно, вы могли бы использовать такие же необычные библиотеки javascript, как jQuery или prototype, чтобы сделать то же самое, но это «корень»;)!

1 голос
/ 18 декабря 2009

далеко. Ну, (а), сделай так, чтобы тебе не нужно было это делать. :) Или (б):

  1. Получить ссылку на этот тег ul как-то. дать ему атрибут id и использовать: document.getElementById("theULTag"). Или, если это первый тег UL на страница, например, использовать document.getElementsByTagName("ul").item(0)

  2. Теперь установите переменную, равную атрибуту innerHtml этого элемента. Например: var textToChange = document.getElementById("theULTag").innerHTML

  3. узнайте о манипулировании строками JavaScript здесь и сделайте то, что вам нужно (Вам может понадобиться убрать пробелы, чтобы вам было легче)

  4. Введите новый текст с помощью document.getElementById("theULTag").innerHTML = newText

Удачи!

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