2009-12-17 188 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