Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 让我发疯_Javascript_Innerhtml - Fatal编程技术网

Javascript 让我发疯

Javascript 让我发疯,javascript,innerhtml,Javascript,Innerhtml,我有一个简单的JavaScript东西,它让我发疯 输出不是一个以“subSectionNames[i]”作为文本的链接(我尝试用简单的“test”替换),但结果是一样的:它将URI作为明文输出:“domain.com/resume.php”。没有任何链接 想法 测试的受控假设: var subSectionNames = Array("Hired Positions", "Contract Positions"); resume.addSubSections(subSectionNames);

我有一个简单的JavaScript东西,它让我发疯

输出不是一个以“subSectionNames[i]”作为文本的链接(我尝试用简单的“test”替换),但结果是一样的:它将URI作为明文输出:“domain.com/resume.php”。没有任何链接

想法

测试的受控假设:

var subSectionNames = Array("Hired Positions", "Contract Positions");
resume.addSubSections(subSectionNames);
(东西介于两者之间)

this.addSubSections=函数(subsectionname){
subSectionHeading=document.createElement('span');
subSectionHeading.setAttribute('id','subHeading');
subSectionHeading.setAttribute('class','resumeSubHeading');

对于(var i=0;i您不能将
innerHTML
设置为DOM对象--它只保存字符串!相反,请使用
subSectionHeading.appendChild(link)

您不能将
innerHTML
设置为DOM对象--它只保存字符串!相反,请使用
subSectionHeading.appendChild(link)

ohhhhh。我明白了。问题根本不在于链接脚本。现在就测试它。ohhhhh。我明白了。问题根本不在于链接脚本。现在就测试它。你可能应该尽量避免使用
el.innerHTML=el.innerHTML+等
,因为这会让你的浏览器以低效的方式多次破坏DOM。此外,您可以使用直接属性访问替换所有对setAttribute的调用-速度更快,问题更少,例如
link.href='#'
。请注意链接的常见建议-它们实际上应该是链接,所以请给它们一个真正的href或使用按钮或类似操作。您可能应该尽量避免使用
el.innerHTML=el.innerHTML+etc
,因为这会使您的浏览器以一种低效的方式多次破坏DOM。此外,您可以使用直接属性访问替换所有对setAttribute的调用-速度更快,问题更少,例如
link.href='#'
。请注意链接的常见建议-它们应该是链接,所以请给它们一个真正的href或u按下按钮或类似按钮。
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);
    }