2009-12-17 169 views
1

我试图替换一些由ajax脚本生成的html标签。阿贾克斯脚本生成以下UL名单:动态替换html标签

<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> 

我需要</ul><hr /><ul>更换<li class="odd"><hr /></li>。我想它必须是一些JavaScript来动态替换这些标签,每次列表正在生成,但我不知道如何去做。你能指点我到正确的轨道吗?

任何帮助,非常感谢。

+3

这听起来像个坏主意。 'hr'是**不是** ul的允许子元素 – Quentin 2009-12-17 22:07:19

+0

我已更正问题。 – Anthony 2009-12-17 22:08:55

+1

出于好奇,为什么不能更改生成初始

    ...
的脚本以输出所需的标记以开始? – 2009-12-17 22:11:47

回答

1

首先,你应该分配一个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或原型这样的花式JavaScript库来做同样的事情,但这是“根”方式;)!

1

远远超出。那么,(一),做到这一点,所以你不需要那样做。 :)或(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

祝你好运!

+0

我的回答是第一次!啊,我没有爱。 。 。 – 2009-12-22 02:20:50