通过Javascript在IE9上添加li元素
我试图通过javascript显示一个调查列表。 代码如下:通过Javascript在IE9上添加li元素,javascript,internet-explorer,Javascript,Internet Explorer,我试图通过javascript显示一个调查列表。 代码如下: function ParseSurveys(surveyList) { var sideBarSurveyList = document.getElementById('sliding-navigation'); for (var m = 0; m < surveyList.length; m++) { var child = document.createElement
function ParseSurveys(surveyList) {
var sideBarSurveyList = document.getElementById('sliding-navigation');
for (var m = 0; m < surveyList.length; m++) {
var child = document.createElement("li");
child.innerHTML += "<li class='sliding-element'><a href='javascript:sendSurvey(" + (m + 1) + ")'>Survey " + surveyList[m].Id + "</a></li>";
sideBarSurveyList.insertBefore(child, sideBarSurveyList.lastChild);
}
}
它可以在Chrome和Firefox上完美运行,但在IE9上却不行。
在Chrome和Firefox上,调查列表如下所示:
•调查1
这就是我想要的
然而,在IE9上,它看起来像:
•
•调查1
为什么IE9显示了两个点?
我能有一个简单的解决办法吗?我不想为IE9和任何其他浏览器编写两个版本的Javascript:
谢谢!
艾希礼也许你不打算生两个孩子?尝试忽略innerHTML分配中的标记:
function ParseSurveys(surveyList) {
var sideBarSurveyList = document.getElementById('sliding-navigation');
for (var m = 0; m < surveyList.length; m++) {
var child = document.createElement("li");
child.className = 'sliding-element';
child.innerHTML += "<a href='javascript:sendSurvey(" + (m + 1) + ")'>Survey " + surveyList[m].Id + "</a>";
sideBarSurveyList.insertBefore(child, sideBarSurveyList.lastChild);
}
}
因为你创造了两次李;一次使用createElement,一次使用内部html。您正在使用document.createElementli创建新元素;然后通过innerHTML添加另一个li。这就是问题所在吗?只需将className添加到child并通过innerHTML仅附加锚。