mootools DOM节点添加、删除、改变顺序操作

本文介绍使用MooTools框架动态地在HTML表格中添加、删除行,并实现行的上下移动功能。通过实例代码展示了如何利用MooTools的Element方法创建新元素、注入到DOM树中,以及绑定事件处理函数来响应用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mootools 的写法与jq 是很不一样的。
下面的例子是在tbody 节点增加一行内容并且可以修改他们之间的顺序
文档链接: mootools的中文文档mootools的英文文档

<!DOCTYPE html>
<html>
<head>
	<title>mootools</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<script type="text/javascript" src="https://cdn.staticfile.org/mootools/1.6.0/mootools-core-compat.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.bootcdn.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
<body>
	<a id="add" class="btn btn-primary">添加</a>
	<div class="table-responsive" id="table-content">
		<table  class="table table-striped">
			<thead>
				<tr>
					<td>#</td>
					<td>NAME</td>
					<td>MARK</td>
					<td>OPERATE</td>
				</tr>
			</thead>
			<tbody id="data">
				<tr>
					<td>1</td>
					<td>张三</td>
					<td>测试1号</td>
					<td>
						<span class="del" style="cursor:pointer;">删除</span><code style="background: none">|</code>
						<span class="asc" style="cursor:pointer;">上移</span><code style="background: none">|</code>
						<span class="desc" style="cursor:pointer;">下移</span>
					</td>
				</tr>
			</tbody>
		</table>
	</div>
	<script type="text/javascript">
		(function(){
			var n = $$('#data tr').length;
			var _div = $('table-content');
			$('add').addEvent('click', function(){
				var newRow = new Element('tr', {'class':'success','html':getTemp(++n)});
				newRow.inject($('data'));
				bindEditEvent(newRow); // 新增加的数据绑定事件
			});
			getTemp = function(v){
				return '<td>'+v+'</td><td>张三'+v+'</td><td>测试'+v+'号</td><td>\
						<span class="del" style="cursor:pointer;">删除</span><code style="background: none">|</code>\
						<span class="asc" style="cursor:pointer;">上移</span><code style="background: none">|</code>\
						<span class="desc" style="cursor:pointer;">下移</span></td>';
			}
			var bindEditEvent=function(row){
				var asc=row.getElement('span.asc');
				var desc=row.getElement('span.desc');
				var del=row.getElement('span.del');
				asc.addEvent('click',function(){
					var pre=row.getPrevious('tr');
					if(pre)row.injectBefore(pre);
				});
				desc.addEvent('click',function(){
					var next=row.getNext('tr');
					if(next)row.injectAfter(next);
				});
				del.addEvent('click',function(){
					if($$('#data tr').length<2) {alert('可选值不能为空,请至少留一条可选值');return;}
					if(confirm('删除不可恢复,确认删除本行吗?'))row.remove();
				});    
			};
			$$('#data tr').each(bindEditEvent); // 给初始数据绑定事件
		})();
	</script>
</body>
</html>

效果如图:
效果图
扩展:

创建新元素.
语法:
var myEl = new Element(element[, properties]);
参数:
element - (mixed)为要创建的元素或一个实际的DOM元素或CSS选择器的标签名称。
properties - (object, optional)设置元素属性。
返回:
(element)一个新的MooTools扩展后的HTML元素。
示例:
// Creating an new anchor with an Object
var myAnchor = new Element('a', {
    href: 'http://mootools.net',
    'class': 'myClass',
    html: 'Click me!',
    styles: {
        display: 'block',
        border: '1px solid black'
    },
    events: {
        click: function(){
            alert('clicked');
        },
        mouseover: function(){
            alert('mouseovered');
        }
    }
});
 
// Using Selectors
var myNewElement = new Element('a.myClass');
注意:
因为元素名称解析为一个CSS选择器,所以冒号必须转义。因此,new Element('fb\:name)成为<fb:name>。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值