js实现表格的隔行变色和上下移动
短信预约 -IT技能 免费直播动态提醒
本文实例为大家分享了js实现表格的隔行变色和上下移动的具体代码,供大家参考,具体内容如下
话不多说,先看效果图:
点击上移或下移
table样式:
<style>
table{
border:1px solid greenyellow;
width: 300px;
}
.hero{
display: none;
}
.show{
display: block;
}
</style>
表格代码:
<body>
<h3>三国英雄人物排行榜</h3>
<input type="button" value="我来添加英雄" id="add1">
<div class="hero">
英雄:<input type="text" id="heroName">
</div>
<table id="tab">
<tr>
<td>排名</td>
<td>人物</td>
<td>
操作
</td>
</tr>
<tr>
<td>1</td>
<td>关羽</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
<tr>
<td>2</td>
<td>马超</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
<tr>
<td>3</td>
<td>吕布</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
<tr>
<td>4</td>
<td>典韦</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
<tr>
<td>5</td>
<td>张飞</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
<tr>
<td>6</td>
<td>赵云</td>
<td>
<input type="button" onclick="up(this)" value="上移"/><br/>
<input type="button" value="下移" onclick="down(this)">
</td>
</tr>
</table>
</body>
JQuery代码
//隔行变色 //这里如果感觉麻烦就封装进一个方法里
$('tr:even').children().css('background-color','#f4fe56')
$('tr:odd').children().css('background-color','#fe9d88')
//显示输入框
$('#add1').click(function () {
$('.hero').toggleClass('show')
})
//添加事件,添加英雄
$('#heroName').blur(function () {
let val = $(this).val().trim();//文本框输入的内容去除空格
let length = $('tr').length; //获取tr下的长度,即是,每个tr下td里面的序号
let name='<tr>\n' +
' <td>'+length+'</td>\n' +
' <td>'+val+'</td>\n' +
' <td>\n' +
' <input type="button" οnclick="up(this)" value="上移"/><br/>\n' +
' <input type="button" value="下移" οnclick="down(this)">\n' +
' </td>\n' +
' </tr>'
if (!val.trim()==''){ //去除输入值左右的空格后不等于空,就将数据放进表格中
$('#tab').append(name)
}
heroName.keyCode=function(){ //键盘点价事件
let e=window.event
if (e.keyCode==13){ //回车后,自动提交
tab.submit()
}
}
$('tr:even').children().css('background-color','#f4fe56')
$('tr:odd').children().css('background-color','#fe9d88')
})
//上移--jq实现
function up(btn) {
//获取当前行的td
var td1=$(btn).parent().prev()
//var td1=btn.parentElement.previousElementSibling
//获取上一行的td
var td2=$(btn).parent().parent().prev().children().eq(1)
if(td2.html()=='人物'){
return
}
//交换两个td的文本值
var t=td1.html();
td1.html(td2.html())
td2.html(t)
}
//下移--js实现
function down(btn) {
//获取当前行的td
var td1=btn.parentElement.previousElementSibling
//获取下一行的td
var td2=btn.parentElement.parentElement.nextElementSibling.firstElementChild.nextElementSibling
//交换两个td的文本值
var t=td1.innerHTML;
td1.innerHTML=td2.innerHTML
td2.innerHTML=t
}
记得不要忘记添加jq的包哟
<script class="lazy" data-src="../jquery-3.3.1.min.js"></script>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341