2010-06-21 70 views
0

我有一個頁面,需要用戶輸入,然後它會執行一些JavaScript和填充頁面上的字段。其中一部分包括調用一個將運行的perl腳本,並從另一個頁面獲取數據,以檢查來自用戶的輸入。 perl腳本將返回的項目數量可以是零到十甚至更多。爲了處理這個問題,我寫了一些javascript來將每個項目追加到我的html頁面的列表中。從javascript的Internet Explorer和動態列表

我遇到的問題是,它似乎在Safari和Chrome中工作得很好,但似乎不想在Internet Explorer 6或7中工作。這裏的主要問題是,大多數人會正在使用這將在Internet Explorer上。我的JavaScript代碼沒有錯誤。

<div id='testDiv'><ul></ul></div>

然後我有我的JavaScript和

<li>blah blah blah</li></ul>

替換該實例關閉</ul>在div和有重複的每一個項目需要被添加到列表的時間。網頁上的其他所有內容都可以正常工作,甚至還有新的列表項顯示在哪裏。但是它並沒有在那裏顯示任何文字。

有沒有我做錯了或者是Internet Explorer不能正確渲染?


編輯:添加了請求的信息。

var dateList = document.getElementById('testDiv').innerHTML; 
var insertToList = "<li><div>blah blah blah</div></li></ul>"; 
dateList = dateList.replace('</ul>', insertToList); 
document.getElementById('testDiv').innerHTML = dateList; 

我有這個循環來循環遍歷結果,並根據需要向列表中添加結果。不幸的是,由於這是一個內部項目,我無法將您鏈接到頁面。

+0

你能鏈接到網頁嗎?或者至少發佈正在執行替換的Javascript? – 2010-06-23 01:54:26

+0

請參閱上文,添加了JavaScript代碼。 – sam 2010-06-23 14:56:18

回答

0

根據你用於你的選擇器引擎,IE是不同的。我建議使用jQuery來選擇和替換內容,因爲它會爲您處理瀏覽器差異。

0

在IE6中testDiv.innerHTML<UL></UL>。請注意大寫標籤。

dateList.replace('</ul>', ...)找不到匹配的東西,因此它不執行替換。

更好的方法是獲取對列表(ul)元素的引用並在其中附加HTML。

var ulRef = document.getElementById('testDiv').getElementsByTagName("ul")[0]; 
ulRef.innerHTML += "<li><div>blah blah blah</div></li>";