最近table要素を生成するスクリプトばかり書いているので、insertRow()
、insertCell()
等のありがたさが身に染みている。で、今更ながら気づいたこと。
var newDiv = document.createElement('DIV');
document.body.appendChild(newDiv);
createElement()
の返り値はElement。appendChild()
の返り値は追加されたNode。ということはこれは、
var newDiv = document.body.appendChild(document.createElement('DIV'));
と書くこともできる。追加される前に条件分岐したいとか、そういうことでもない限りは全く同じだと思う。
強制改行除去の部分に、よくやってしまうミスを発見。
var oBRs = document.getElementsByTagName('BR');
for(var i=0; i<oBRs.length; i++){
var oBR = oBRs.item(i);
var nHR = document.createElement('HR');
with(nHR){
className = 'UJS_HR';
style.display = 'none';
}
oBR.parentNode.replaceChild(nHR, oBR);
}
for文の()の中身は、毎回評価されるので、oBRs.lengthの値が常に変化しているはず。いつもこれに引っかかって悩むのでした。