No.3 操作DOM实现增删小实例
1.学习目标
- 获取或设置元素内容
- 在页面中添加元素
- 在页面中删除元素
- 判断是否为空,如果空就不执行
- 模版字符串的使用
- 委托绑定
2.学习资料
如何获取html中的元素呢?以下是重中之重必须牢记
JavaScript
var content = document.getElementById('a');//通过id来获取
var content = document.getElementsByClassName('a');//通过class名来获取
1
2
2
Jquery
$('#div');//通过id获取
$('.div');//通过classname获取
$('div');//通过全选标签获取
1
2
3
2
3
接下来如何设置和获取html中的内容呢?
JavaScript
var html = content.innerText();//这个是获取单文本
var html = content.innerHtml();//这个是连同标签一起获取
var html = content.value;//获取value
1
2
3
2
3
Jquery
var html = content.text();//这个是获取单文本
var html = content.html();//这个是连同标签一起获取
var html = content.val();//获取value值
content.append(html);//添加到content中
1
2
3
4
2
3
4
3.Jquery方式实现
html
<body>
<div class="container">
<div class="inputContent">
<input type="text" id="todo-input" value="">
<button id="add">添加</button>
</div>
<div class="content" id="todo-content">
<div class="content-item">
<p class="item-lt">test</p>
<p class="item-del">X</p>
</div>
</div>
</div>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Jquery
<script>
$('#add').click(function(e){
var contentInput = $('#todo-input').val();
var content = $('#todo-content');
if(contentInput != ''){
content.append(`
<div class="content-item">
<p class="item-lt">${contentInput}</p>
<p class="item-del">X</p>
</div>
`)
}
})
$('#todo-content').delegate('p','click',function(){
var $handler = $(this).prop('class');
console.log($handler)
if ($handler=='item-del') {
$(this).parent().remove();
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
4.javascript实现
var a = document.getElementById('todo-input');
var list = document.getElementsByClassName('content-item');
var add = document.getElementById('add');
var todolist = document.getElementById('todo-content');
console.log(todolist)
add.addEventListener('click',function(e){
let content = a.value;
if (content != '') {
let todoItem = document.createElement('div');
let todoLt = document.createElement('p');
let todoDel = document.createElement('p');
todoItem.setAttribute('class','content-item');
todoLt.setAttribute('class','item-lt');
todoDel.setAttribute('class','item-del');
todoLt.innerText = content;
todoDel.innerText = 'x';
todoItem.appendChild(todoLt);
todoItem.appendChild(todoDel);
todolist.appendChild(todoItem);
this.value = '';
}
})
todolist.addEventListener('click',function(e){
let click = e.target.className;
let todoItem = e.target.parentNode;
console.log(click)
if (click == 'item-del') {
todoItem.remove();
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31