Javascript 为什么这在Chrome中有效而在firefox中无效? 函数填充(colname){ 变量numRows,i,toCopy,迭代名称; numRows=document.getElementById('malesTable').rows.length+document.getElementById('femalesTable').rows.length-2; //获取行数,减去标题行的两行(公行和母行) toCopy=document.getElementById(colname.id).value; i=1; //迭代id和输入值 对于(i;i

Javascript 为什么这在Chrome中有效而在firefox中无效? 函数填充(colname){ 变量numRows,i,toCopy,迭代名称; numRows=document.getElementById('malesTable').rows.length+document.getElementById('femalesTable').rows.length-2; //获取行数,减去标题行的两行(公行和母行) toCopy=document.getElementById(colname.id).value; i=1; //迭代id和输入值 对于(i;i,javascript,firefox,google-chrome,Javascript,Firefox,Google Chrome,当您这样做时: function fill (colname) { var numRows, i, toCopy, iterated_name; numRows = document.getElementById('malesTable').rows.length + document.getElementById('femalesTable').rows.length - 2; //gets number of rows, subtracts two for head

当您这样做时:

function fill (colname) {
    var numRows, i, toCopy, iterated_name;

    numRows = document.getElementById('malesTable').rows.length + document.getElementById('femalesTable').rows.length - 2;
    //gets number of rows, subtracts two for header rows(male and female)
    toCopy = document.getElementById(colname.id).value;
    i = 1;
    //iterate over id's and input values
    for (i; i <= numRows; i++){
    iterated_name = colname.id + "_" + i;
    document.getElementById(iterated_name).value = toCopy;
    }
}
您在Firefox中传入了未定义的元素,但在Chrome中传入了一个元素,因为Chrome会使所有带有ID的元素污染全局范围


当你说“它(在Firefox中)不工作”时,你大概是指
fill(document.getElementById(“external\u id”)

,这意味着什么?你得到了什么输出/行为?你也可以用完整的html和js代码制作JSFIDLE。非常感谢,javascript是新手,所以这些小东西可能会很烦人。非常感谢。
fill(external_id);