2011-06-30 82 views
0

我有一个简单的JavaScript的东西,这是驱动我疯狂。innerHTML - 驾驶我疯狂

而不是输出与'subSectionNames [i]'作为文本的链接(我尝试用简单的“测试”替换,但结果是相同的:它将URI以明文形式吐出:“域。 COM/resume.php”没有任何linkification

思考

试验控制假设:?

var subSectionNames = Array("Hired Positions", "Contract Positions"); 
resume.addSubSections(subSectionNames); 

(东西进来之间)

this.addSubSections = function(subSectionNames) { 
      subSectionHeading = document.createElement('span'); 
      subSectionHeading.setAttribute('id', 'subHeading'); 
      subSectionHeading.setAttribute('class', 'resumeSubHeading'); 
      for (var i=0;i<subSectionNames.length;i++) { 
        var link = document.createElement('a'); 
        link.setAttribute('class', 'resumeSubHeadingLink'); 
        link.setAttribute('href', '#');     
        var clickEvent = "showSubHeading('" + subSectionNames[i] + "')"; 
        link.setAttribute('onClick', clickEvent); 
        link.innerHTML=subSectionNames[i]; 
        link.innerHTML="test"+i; 
        subSectionHeading.innerHTML = subSectionHeading.innerHTML + link; 
      } 
      document.getElementById('leftInner').appendChild(subSectionHeading); 
    } 
+0

您应该尽量避免使用'el.innerHTML = el.innerHTML + etc',因为这会让您的浏览器以低效的方式多次分解DOM。 –

+1

此外,您可以用直接属性代码替换* setAttribute *的所有调用 - 速度更快,问题更少,例如, 'link.href ='#''。还要注意链接的常用建议 - 它们应该是链接,所以给它们一个真正的* href *或使用按钮或类似的。 – RobG

回答

4

您不能将innerHTML设置为DOM对象---它仅包含一个字符串!相反,请使用subSectionHeading.appendChild(link)

+0

ohhhhhhh。我懂了。问题不在于链接脚本。现在测试。 –

+1

这样做!非常感谢。 –