这条线有什么问题?

What is wrong with this line?

本文关键字:问题 什么      更新时间:2023-09-26

我得到一个

Breaking on JScript runtime error - Unknown runtime error 

:

c.innerHTML= '<a name="a1" class="b" href="' + d[2].value + '">' + 
              d[1].value + '</a>';

我注意到c是一个锚元素,你正试图设置它的innerHTML来创建一个子锚元素,这是无效的HTML,尽管大多数浏览器可以容忍无效的HTML。可以使事情更清楚并帮助您识别问题的方法是这样编写代码:

var b = document.getElementById('Bb1c');
var c = document.createElement('a');
var d = document.forms['f3'].elements;
c.name = 'a1';
c.className = 'b';
c.href = d[2].value;
var value = d[1].value;
// You should really HTML-escape value before assigning it.
c.innerHTML = value;
b.appendChild(c);

这可能仍然会有与之前相同的错误,但是应该更容易找出错误发生在哪一行。例如,问题可能是d[1]d[2]null

无需转义。使用单引号和双引号的组合

c.innerHTML= '<a name="a1" class="b" href="' + d[2].value + '">' + d[1].value + '</a>';