2010-06-21 62 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>";