动态替换html标签

时间:2009-12-17 22:04:52

标签: javascript html ajax replace

我正在尝试替换由ajax脚本生成的一些html标记。 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 个答案:

答案 0 :(得分:2)

首先,您应该为您分配一个ID,以便更容易访问:

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

然后,您可以使用string manipulationinnerHTML property来做您想做的事情:

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

你当然可以使用像jQuery或prototype这样的花哨javascript库来做同样的事情,但这是“根”方式;)!

答案 1 :(得分:1)

很远。好吧,(a),做到这一点,你不需要这样做。 :)或(b):

  1. 获取对该ul标记的引用 不知何故。给它一个id属性 并使用: document.getElementById("theULTag")。 或者,如果它是第一个UL标签 例如,页面,使用 document.getElementsByTagName("ul").item(0)

  2. 现在设置一个等于此元素的innerHtml属性的变量。例如:var textToChange = document.getElementById("theULTag").innerHTML

  3. learn about javascript string manipulation here,做你需要做的事。 (您可能需要删除空格以使自己更容易)

  4. 使用document.getElementById("theULTag").innerHTML = newText

  5. 重新输入新文字 祝你好运!