eventtable = document.getElementById('eventTable')
eventtable.insertRow(-1)
newTd = eventtable.rows[eventtable.rows.length-1].insertCell(-1)
newTd.innerHTML = "<input type='checkbox' name='eventContentDelete' id='eventContentDeleteID' />"
alert(document.getElementsByName('eventContentDelete').length)
你好,如题描述的结果是必然的。
首先,你需要明白两个问题:第一,js浏览器端脚本,执行在服务端内容响应成功之后,它的appendChild方法,只是在浏览器中进行了 *** 作,并未向服务器发送保存请求(命令);第二,当你刷新页面的时候,你实际上是通过浏览器向服务器发送了一个请求,而当请求完成后你看到的界面是从服务端返回来的,并不是由浏览器直接产生。
明白了这两点,我给你举个例子说明下:
我们假设服务端有一个html文件,名为index.html,它包含题中所述的那段js
当你刷新页面的时候,index.html 的内容被请求到了浏览器,这时浏览器将它的内容显示给你
当页面显示完成(这里要看你js的位置或调用方式)之后,客户端js开始执行,将button添加到浏览器显示的内容中
而这时,服务器上index.html文件的内容并没有发生改变
所以当你再次刷新,从服务器取index.html的时候,页面内容就恢复到最初状态了。
希望说清楚了,如有疑问欢迎追问,望采纳~
<div id="put_box">js动态添加的控件在这里<input /><input />
</div>
<asp:button onclientclick="getCount()" ...>
<input id="hd_count" type="hidden" runat="server" />
<script>
function getCount(){
document.getElementById("hd_count").value = document.getElementById("put_box").getElementsByTagName("INPUT").length
}
</script>
.cs
int count = int.Parse(hd_count.Value)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)