一、主要介绍:
这题采用之前的技术,根据table的rows属性,获得数组,然后对数组设置样式,所以颜色就出来了。
1).全选复选框,通过var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
复选框函数进行
2).按钮全选,反选,和取消全选,可以用一个函数写,传入不同的参数AllBybtn(num)类型即可
函数里面 根据js的特性 非0 和 0 这两种状态,进行设置,为了同步,需要分别进行设置
3).为了显示出当全部选中就默认全选的复选框选中,所以需要对每一个复选框进行设置,采用函数checkBysingle()进行设置
4).删除所选项是需要主要,当前的是checkbox对象,上一级是td--tr--先拿到tr对象,然后对通过tr的父节点删除tr对象再删除之后,x会变化,可能有些删不到,所以需要将X的值还原,或者从后面开始删除。
2、样式设置:
<style type="text/css">
.one{
background-color:#00ff80;
}
.two{
background-color:#80ff00;
}
.three{
background-color:#0000ff;
}
table th{
background-color:#c0c0c0;
}
table{
width:400px;
border:solid 1px;
}
table tr{
height:50px;
}
</style>
三、背景颜色以及鼠标移动的事件设置
function toaddcolor(){
//颜色设置,
var nodes = document.getElementById("tabid");
var rows1 = nodes.rows;
for (var x = 1; x < rows1.length; x++) {
if (x % 2 == 0) {
rows1[x].className = "one";
}
else {
rows1[x].className = "two";
}
}
}
function addEvent(){
var name;
//当鼠标移上去之后发生相应的变化
var nodes=document.getElementById("tabid");
var rows1=nodes.rows;
for (var x = 1; x < rows1.length; x++) {
rows1[x].onmouseover = function(){
name = this.className;
this.className = "three";
}
rows1[x].onmouseout = function(){
this.className = name;
}
// alert("bb");
// alert(rows1[x].getElementsByTagName("input")[0].nodeName);
rows1[x].getElementsByTagName("input")[0].onclick=function(){//每一行的input对象
document.getElementsByName("allItem")[0].indeterminate=true;//让全选的复选框形状发生变化
}
}
}
onload=function(){//在网页加载时候调用
toaddcolor();
addEvent();
}
四、复选框的全选
function allcheck(nodes){//全选checkbox的点击调用这个
var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
//多个全选的时候,必须和其他的一个一样
var nodes1=document.getElementsByName("allItem");
for(var x=0;x<nodes1.length;x++){
nodes1[x].checked=nodes.checked;
}
}
五、按钮的全选
function AllBybtn(num){//全选按钮设置
var nodess = document.getElementsByName("mail");
/*多重for 循环不太好,可以根据js里面的特性0 非0
for (var x = 0; x < nodess.length; x++) {
if (num == 1) {
nodess[x].checked = 1;
}else if (num == 2) {
nodess[x].checked = !nodess[x].checked;
}else if (num == 3) {
nodess[x].checked = false;
}
}*/
for(var x=0;x<nodess.length;x++){
if(num<2){
nodess[x].checked=num;
//让全选的复选框可以 单独写个函数
var all=document.getElementsByName("allItem");
for(var y=0;y<all.length;y++){
if(num==1){
all[y].checked=num;
}else{
all[y].checked=num;
}
}
}else{
nodess[x].checked=!nodess[x].checked;
var all=document.getElementsByName("allItem");
for (var y = 0; y < all.length; y++) {
all[y].checked=0;
}}}}
六、所有项目都选中之后全选自动选中
function checkBysingle(){//全部入选之后,全选的自动选中
var flag = true;
var node = document.getElementsByName("mail");
for (var x = 0; x < node.length; x++) {
if (node[x].checked == false) {
flag = false;
break;
}
}
var all = document.getElementsByName("allItem");
for (var y = 0; y < all.length; y++) {
if (flag) {
all[y].checked = true;
}
else {
all[y].checked = false;
}}}
七、删除邮件的函数(删除行)
function DelBybtn(){//删除行
var tdnode=document.getElementsByName("mail");
/*for(var x=0;x<tdnode.length;x++){
if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象
var trnode=tdnode[x].parentNode.parentNode;//tr对象
trnode.parentNode.removeChild(trnode);//table对象移除tr对象
// alert("aa");
//节点容器跟Java当中的集合一样,只要是remove(),长度就会变的。这里,需要进行x的复位
x--;
}*/
for(var x=tdnode.length-1;x>=0;x--){
if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象
var trnode=tdnode[x].parentNode.parentNode;//tr对象
trnode.parentNode.removeChild(trnode);//table对象移除tr对象
}
loading();//调用颜色的设置
}
}
现象一:
反选效果:
删除前:
删除后:
完整代码:
<!DOCTYPE html>
<html>
<head>
<!--
这题采用之前的技术,根据table的rows属性,获得数组,然后对数组设置样式,所以颜色就出来了
1,全选复选框,通过var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
复选框函数进行
2,按钮全选,反选,和取消全选,可以用一个函数写,传入不同的参数AllBybtn(num)类型即可
函数里面 根据js的特性 非0 和 0 这两种状态,进行设置,为了同步,需要分别进行设置
3,为了显示出当全部选中就默认全选的复选框选中,所以需要对每一个复选框进行设置,采用函数checkBysingle()进行设置
4,删除所选项是需要主要,当前的是checkbox对象,上一级是td--tr--先拿到tr对象,然后对通过tr的父节点删除tr对象
再删除之后,x会变化,可能有些删不到,所以需要将X的值还原,或者从后面开始删除
-->
<title>Mail.html</title>
<style type="text/css">
.one{
background-color:#00ff80;
}
.two{
background-color:#80ff00;
}
.three{
background-color:#0000ff;
}
table th{
background-color:#c0c0c0;
}
table{
width:400px;
border:solid 1px;
}
table tr{
height:50px;
}
</style>
<script type="text/javascript">
var name;
function toaddcolor(){
//颜色设置,
var nodes = document.getElementById("tabid");
var rows1 = nodes.rows;
for (var x = 1; x < rows1.length; x++) {
if (x % 2 == 0) {
rows1[x].className = "one";
}
else {
rows1[x].className = "two";
}
}
}
function addEvent(){
var name;
//当鼠标移上去之后发生相应的变化
var nodes=document.getElementById("tabid");
var rows1=nodes.rows;
for (var x = 1; x < rows1.length; x++) {
rows1[x].onmouseover = function(){
name = this.className;
this.className = "three";
}
rows1[x].onmouseout = function(){
this.className = name;
}
// alert("bb");
// alert(rows1[x].getElementsByTagName("input")[0].nodeName);
rows1[x].getElementsByTagName("input")[0].onclick=function(){//每一行的input对象
document.getElementsByName("allItem")[0].indeterminate=true;//让全选的复选框形状发生变化
}
}
}
onload=function(){//在网页加载时候调用
toaddcolor();
addEvent();
}
function allcheck(nodes){//全选checkbox的点击调用这个
var nodess=document.getElementsByName("mail");
for(var x=0;x<nodess.length;x++){
nodess[x].checked=nodes.checked;
}
//多个全选的时候,必须和其他的一个一样
var nodes1=document.getElementsByName("allItem");
for(var x=0;x<nodes1.length;x++){
nodes1[x].checked=nodes.checked;
}
}
function AllBybtn(num){//全选按钮设置
var nodess = document.getElementsByName("mail");
/*多重for 循环不太好,可以根据js里面的特性0 非0
for (var x = 0; x < nodess.length; x++) {
if (num == 1) {
nodess[x].checked = 1;
}else if (num == 2) {
nodess[x].checked = !nodess[x].checked;
}else if (num == 3) {
nodess[x].checked = false;
}
}*/
for(var x=0;x<nodess.length;x++){
if(num<2){
nodess[x].checked=num;
//让全选的复选框可以 单独写个函数
var all=document.getElementsByName("allItem");
for(var y=0;y<all.length;y++){
if(num==1){
all[y].checked=num;
}else{
all[y].checked=num;
}
}
}else{
nodess[x].checked=!nodess[x].checked;
var all=document.getElementsByName("allItem");
for (var y = 0; y < all.length; y++) {
all[y].checked=0;
}
}
}
}
function checkBysingle(){//全部入选之后,全选的自动选中
var flag = true;
var node = document.getElementsByName("mail");
for (var x = 0; x < node.length; x++) {
if (node[x].checked == false) {
flag = false;
break;
}
}
var all = document.getElementsByName("allItem");
for (var y = 0; y < all.length; y++) {
if (flag) {
all[y].checked = true;
}
else {
all[y].checked = false;
}}}
function DelBybtn(){//删除行
var tdnode=document.getElementsByName("mail");
/*for(var x=0;x<tdnode.length;x++){
if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象
var trnode=tdnode[x].parentNode.parentNode;//tr对象
trnode.parentNode.removeChild(trnode);//table对象移除tr对象
// alert("aa");
//节点容器跟Java当中的集合一样,只要是remove(),长度就会变的。这里,需要进行x的复位
x--;
}*/
for(var x=tdnode.length-1;x>=0;x--){
if(tdnode[x].checked){//对象是 checkbox 我们必须要那父级的父级 《tr》,我们需要移除的就是tr对象
var trnode=tdnode[x].parentNode.parentNode;//tr对象
trnode.parentNode.removeChild(trnode);//table对象移除tr对象
}
toaddcolor();
addEvent();
}
}
</script>
</head>
<body>
<table id="tabid">
<tr> <th><input type="checkbox" name="allItem" onclick="allcheck(this)"/> 全选 </th> <th>发件人</th> <th>邮件标题</th> <th>邮件附属信息</th></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>张三</td> <td>国庆祝福</td> <td>邮件附属信息1....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息2....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息3....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息4....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Jack</td> <td>假期堵车</td> <td>邮件附属信息5....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr>
<tr> <td><input type="checkbox" name="mail" onclick="checkBysingle(this)" /> </td> <td>Tom</td> <td>一些广告</td> <td>邮件附属信息6....</td></tr>
<tr><td><input type="checkbox" name="allItem" onclick="allcheck(this)">全选</td>
<td colspan=3><input type="button" value="全选" name="btn1" onclick="AllBybtn(1)" />
<input type="button" value="反选" name="btn2" onclick="AllBybtn(2)"/>
<input type="button" value="取消全选" name="btn3" onclick="AllBybtn(0)"/>
<input type="button" value="删除所选项" name="btn4" onclick="DelBybtn()"/>
</td>
</tr>
</table>
</body>
</html>
希望本文所述对大家学习javascript程序设计有所帮助。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]




