在javascript中,可以使用removeChild删除一个对象的子元素。但如果是使用循环删除复合一定条件的子元素时,请使用逆序。
原因:正序时,删除一子元素时,后面的元素index可能会发生改变,造成删除出错or删除不净。
eg.
function removeInputElementsFromForm(formName,inputNamePre){ var formObj = eval("document."+formName); var allInputElements = formObj.getElementsByTagName("input"); var len = allInputElements.length; //需要将giftTrs.length的length属性存储起来 for (var i=len-1;i >= 0;i--) {// 使用逆序,因为remove var tagInput = allInputElements[i]; var tagInputName = tagInput.getAttribute("name"); if(tagInputName != null && tagInputName.startWith(inputNamePre)){ formObj.removeChild(tagInput); } } }