云南农职《JavaScript交互式网页设计》 综合机试试卷③——实现二级分类菜单
一、语言和环境
- 实现语言:HTML,CSS,JavaScript,JQuery。
- 开发环境:HBuilder。
二、题目(100分):
- 使用Jquery和JavaScript实现二级分类菜单管理
- 点击“添加一级分类”能添加一行一级分类
- 点击“添加子分类”能添加一行二级分类
- 点击“删除”可以删除该级分类
- 点击“全选”可以实现下列行全选
- 推荐实现步骤
- 在HTML页面中,使用外部插入after()方法在指定行对象后面插入一行分类
- 使用remove()方法实现分类的删除操作,通过parent()方法获取元素对象的父类
- 通过输入框的checked属性设置实现全选操作
- 设置表格边框只显示顶部可实现简约效果
三、评分标准
题目:二级分类菜单管理 | |||
该程序评分标准如下: | |||
20 | 正确按照效果图编写出html代码 | ||
| 10 | 正确显示操作界面 | |
| 10 | 正确使用a标签链接按钮 | |
30 | 正确地给html元素添加CSS样式 | ||
| 10 | 添加按钮样式 | |
| 10 | 设置超链接样式为none,字体大小适中,鼠标悬停有效果 | |
| 10 | 表格、文本内容居中显示,只设置单元格上边框 | |
40 | 正确编写JS/JQuery代码实现分级分类菜单操作 | ||
| 5 | 正确引入Jquery库 | |
| 10 | 实现点击“添加一级分类”即添加一行一级分类,并附带添加二级分类超链接按钮,和删除超链接按钮 | |
| 10 | 实现点击“添加子分类”即添加一行二级分类,并附带删除超链接按钮 | |
| 10 | 点击“全选”实现对所有行全选操作 | |
| 5 | 点击“删除”可删除该行分类 | |
10 | 整体效果美观以及代码编写规范 | ||
| 6 | 整体显示效果美观 | |
| 4 | Id和class命名规范,可读性好,编码书写有缩进 | |
总分 | 100分 |
四、实现代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/jquery-3.1.1.min.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
.btn {
margin: 30px 10px;
color: white;
background-color: #d9534f;
border: 1px solid transparent;
border-radius: 4px;
font-size: 14px;
line-height: 1.48524;
padding: 6px 12px;
font-family: "微软雅黑";
}
#content {
/*border: 1px solid #B81900;*/
margin: 0 auto;
width: 60%;
}
table {
background-color: #fff;
width: 100%;
border: transparent;
margin: 0 auto;
border-spacing: 0;
}
td {
width: 25%;
padding: 8px;
line-height: 1.42857143;
border-top: 1px solid #ddd;
text-align: center;
}
input {
text-align: center;
border: transparent;
}
a {
text-decoration: none;
}
.search {
border-radius: 4px;
border: 1px solid #CCCCCC;
height: 25px;
text-align: left;
}
</style>
</head>
<body>
<div id="content">
<button class="btn" onclick="add()">添加一级分类</button>
<input type="text" name="" class="search" id="" value="" />
<input type="button" name="" class="btn" id="" value="查询" />
<hr />
<table>
<tr class="item_box">
<th><input type="checkbox" name="" id="allCheck" onchange="allCheck()" value="" />全选</th>
<th>分类</th>
<th>子菜单</th>
<th>操作</th>
</tr>
<tr>
<td><input type="checkbox" name="" id="" value="" /></td>
<td><input type="text" readonly name="" id="" value="一级分类" ondblclick="modify(this)" onblur="save(this)"/></td>
<td>
<a href="#" onclick="addChild(this)">添加子分类</a>
</td>
<td>
<a href="#" onclick="delChild(this)">删除</a>
</td>
</tr>
</table>
</div>
<script type="text/javascript">
//添加一级菜单分类
function add() {
var th_obj = $(".item_box");
th_obj.after('<tr>' +
'<td><input type="checkbox" name="" id="" value="" /></td>' +
'<td><input type="text" class="text_val" readonly name="" id="" value="一级分类" ondblclick="modify(this)" onblur="save(this)"/></td>' +
'<td><a href="#" onclick="addChild(this)">添加子分类</a></td>' +
'<td><a href="#" onclick="delChild(this)">删除</a></td>' +
'</tr>');
}
//删除子菜单分类
function delChild(item) {
//获取a标签的爷爷节点
//parent()方法是jQuery中的方法,只能通过jQuery对象来调用:$(a).parent();
//parentNode是js中的获取父节点的属性,通过js对象调用:obj.parentNode;
//var tr_item=$(item).parent().parent();
var tr_item = item.parentNode.parentNode;
tr_item.remove();
}
//添加二级分类
function addChild(item) {
var trr = item.parentNode.parentNode;
// var tr_item=$(item).parent().parent();
$(trr).after('<tr>' +
'<td colspan="3"><input type="text" readonly name="" id="" value="二级分类" ondblclick="modify(this)" onblur="save(this)"/></td>' +
'<td><a href="#" onclick="delChild(this)">删除</a></td>' +
'</tr>');
}
//设置全选
function allCheck(){
//获取到全选的对象
var allCheck=document.getElementById("allCheck");
//遍历出下面有多少个子选项
var inpt=$("input[type='checkbox']:not(#allCheck)");
for(var i=0;i<inpt.length;i++){
//将全选按钮的选中属性赋值给每一个复选框的选中属性
inpt[i].checked=allCheck.checked;
}
}
//双击修改分类的名称
function modify(item){
//显示出输入框的边框
$(item).css("border","1px solid black");
//删除输入框的只读属性
$(item).removeAttr("readonly");
}
//光标离开输入框保存输入框的值
function save(item){
//消除输入框的边框
$(item).css("border","transparent");
//设置输入框的只读属性
$(item).attr("readonly","readonly");
}
</script>
</body>
</html>
本文来自博客园,作者:明金同学,转载请注明原文链接:https://www.cnblogs.com/vmuu/p/15663401.html
公众号:【明金同学】