【发布时间】:2012-03-18 00:19:32
【问题描述】:
嘿,伙计们,每次执行 if 语句时,无论条件是什么。
function addRow(tableID) {
var table = document.getElementById(tableID);
if((document.getElementById('select_degree').style.visibility = 'hidden')&&(document.getElementById('select_degree')!=null)){
document.getElementById('select_degree').style.visibility = 'visible';
document.getElementById('select_ratings').style.visibility = 'visible';
}
else{
var rowCount = table.rows.length;
var new_row = table.rows[rowCount-1];
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = new_row.cells[i].innerHTML;
}
}
}
当 document.getelementById('add_degree') 为 null 时,我收到错误消息:
document.getElementById("select_degree") is null
addRow(tableID="add_degree")
但如果元素为空,我已经有一个 else 语句
【问题讨论】:
-
如果
document.getElementById('select_degree')是null,那么document.getElementById('select_degree').style.visibility会抛出一个错误。如果抛出错误,整个脚本将终止,else分支将永远不会被执行。颠倒条件。 首先检查元素是否存在,然后赋值(或比较)另一个值。反过来做没有多大意义。 -
这正是为什么在与文字进行比较时,我将文字作为 LHS 的规则。