JavaScript DOM 学习第七章 表单的扩展(2)


function moreFields() {
counter++;


然后复制我们的模板,移除ID,并且把display设置为block。readroot应该是整个文档里面唯一的ID,复制模板后应该显示出来让用户看到。

复制代码 代码如下:


var newFields = document.getElementById('readroot').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';


我们遍历这个拷贝的子元素:

复制代码 代码如下:


var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {


如果子元素有name属性,那么我们就在name值上加上计数器的值,以保证他的唯一性:

复制代码 代码如下:


var theName = newField[i].name
if (theName)
newField[i].name = theName + counter;
}


现在这个拷贝已经准备好插入了。我们把他插入到writeroot之前:

复制代码 代码如下:

var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newFields,insertHere);
}


然后我们在页面加载的时候就执行一次,这样用户进入的时候就能看到:

复制代码 代码如下:

window.onload = moreFields;


移除表单项
每一个模板的拷贝都有一个移除按钮:

复制代码 代码如下:

<input type="button" value="Remove review"
onclick="this.parentNode.parentNode.removeChild(this.parentNode);" />


点击这个按钮就会从移除他的父元素(DIV)。整个生成的表单就都会消失,并且不会再出现。
翻译地址:
转载请保留以下信息
作者:北玉(tw:@rehawk)

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdssps.html