js怎么动态添加一行到table的第一行

js怎么动态添加一行到table的第一行,第1张

HTML code<script language="javascript" type="text/javascript">

function add(){

var tb = document.getElementById("tb")

var tr = tb.insertRow(0)

tr.style.cssText = tb.rows[1].style.cssText

var td = tr.insertCell()

td.innerHTML = "00000"

}

</script>

<input type="button" onclick="add()" value="add">

<table id="tb">

<tr style="background:#CCC"><td>xxx</td></tr>

</table>

------解决方案--------------------

JScript code/*

insertRow()这样是IE独有的.

标准用法是:

insertRow(-1): index为-1的时候就是默认插在最后一行.

insertRow( 0): index为0的时候就是插在第一行

至于样式一样 应该在样式表里统一设置.

因为TABLE的初始状态只有一个 借据号 万元的表头,无论按钮怎么点,都只会触发一次Button_Add_Click,添加一行。以后每次点击,初始状态都只有表头,所以点击之后只会有一行。

所以要用一个东西把你的点击记录存储起来。你可以用VIEWSTATE来存这个TABLE变量,每次PAGE_LOAD的时候把它读出来,每次ONCLICK添加完行之后把TABLE存入VIEWSTATE,这样就OK了。不要随便用静态变量,它会产生一些很BUG的问题。

另外如果VIEWSTATE你觉得不好就用SESSION。总之,在每次POSTBACK后把TABLE存起来就OK了。

htm给table标签动态添加 tr(行),具体参考代码如下:

<html>

<head>

<title>usually function</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

</head>

<script type="text/javascript" src="jquery-1.4.4.js"></script>

<body>

<table border="1px" id="targetTable">

<tr border="1px">

<td>序号</td>

<td>姓名</td>

<td>年龄</td>

<td>生日</td>

<td>备注</td>

</tr>

<tr id="model" style="display:none" border="1px">

<td></td>

<td><input type="text" name="username"></td>

<td><input type="text" name="age"></td>

<td><input type="text" name="birthday"></td>

<td><input type="text" name="note"><span onclick="del(this)">删除</span></td>

</tr>

</table>

<br>

<br>

用户输入表单

姓名<input type="text" name="u_username"><br>

年龄<input type="text" name="u_age"><br>

生日<input type="text" name="u_birthday"><br>

备注<input type="text" name="u_note"><br>

<button onclick="add()" style="font-size:12px">添加</button>

</body>

<html>

<script>

function del(obj){

//alert($(obj).closest("tr").attr("outerHTML"))

//$(obj).closest("tr").attr("outerHTML","")

$(obj).closest("tr").remove()

resetSequenceNum()

}

function add(){

//获取表单的值

var u_username = $("input[name='u_username']").val()

var u_age = $("input[name='u_age']").val()

var u_birthday = $("input[name='u_birthday']").val()

var u_note = $("input[name='u_note']").val()

//alert(u_username)

//判断表单的值是否为空

if(u_username=="" || u_username==undefined){

alert("用户姓名不能为空")

$("input[name='u_username']").focus()

return false

}

//缓存要赋值的内容,避免多次查询,提高效率

var trstr = $("#model").attr("outerHTML")

//alert(trstr)

//复制最后一行的代码添加到表的最后一行

$("#targetTable tr").last().after(trstr)

//$("#targetTable").find("tr").last().after(trstr)

//让最后一行显示出来,而不是隐藏

//$("#targetTable tr").last().css("display","block")会出现浏览器兼容的问题,在ff中显示不正常

$("#targetTable tr").last().css("display","")

//赋值

var target = $("#targetTable tr").last().find("td")

target.find("input[name='username']").val(u_username)

target.find("input[name='age']").val(u_age)

target.find("input[name='birthday']").val(u_birthday)

target.find("input[name='note']").val(u_note)

resetValue()

resetSequenceNum()

}

//清空表单的值

function resetValue(){

$("input[name='u_username']").val("")

$("input[name='u_age']").val("")

$("input[name='u_birthday']").val("")

$("input[name='u_note']").val("")

}

//重新设置序号

function resetSequenceNum(){

var num=0

$("#targetTable tr").each(function(index,dom){

if(index!=0){

$(dom).find("td").first().html(num)

num++

}

})

}

</script>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11608468.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存