49 jQuery 文档操作
主要内容:
1 append操作 : 添加到指定元素的后面
prepend操作 : 添加到指定元素内部的前面
1 )语法 : $(A).append(B) // 把b追加到a的内部
$(A).appendTo(B) // 把a追加到b的内部
var liele = document.createElement('li');
liele.innerText = '444';
$('[type="none"]')
$('[type="none"]').append(liele)
2 after操作 : 添加到指定元素外部的后面
before操作 : 添加到指定元素外部的前面
1 )语法: $(A).after(B) // 把b放在a的后面
$(A).afterTo(B) // 把a放在b的后面
u3ele = document.createElement('ul');
u3ele.innerText = 'this 标签'
$('ul').before(u3ele)
3 替换操作 :replaceWith/replaceAll
1)语法: $(A).replaceWith(B) // b替换a
aele = document.createElement('a');
$(aele).attr('href','http://www.sogo.com') 给dom对象设置属性, 需要把dom对象转换成jQuery对象
aele.innerText = 'sogo'
$('ul').replaceWith(aele)
4 克隆clone()
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="content-Type" charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>Title</title>
<script src="jquery-3.3.1.min.js"></script>
</head>
<body>
<input type="button" value="屠龙宝刀,点击就送">
<script>
$("[type='button']").click(function () {
//自己复制自己, 然后把复制的结果加入到我的后面
$(this).clone(true).insertAfter(this);
// 如果clone里面不加ture, 则复制的结果不能再次复制
注意参数true,加上true会把标签绑定的事件也复制
})
// $("[type='button']").clone().insertBefore()
</script>
</body>
</html>
5 移除和清空操作
$('.u1').empty()
$('#u1').prev().remove()
6 事件委托
1 ) 定义: 事件委托就是利用事件冒泡原理实现的!
2 ) 事件冒泡:就是事件从最深节点开始,然后逐步向上传播事件;
例:页面上有一个节点树,div > ul > li > a
比如给最里面的a 加一个click 事件,那么事件就会一层一层的往外执行,执行顺序 a > li > ul > div, 有这样一个机制,当我们给最外层的div 添加点击事件,那么里面的ul , li , a 做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托他们父集代为执行事件;
事件冒泡的例子:
<body>
<div class="d1">
<p class="p1">
<span class="s1">div>span</span>
</p>
</div>
<script>
// $('.d1').click(function () {
// console.log(alert(789))
// });
// $('.p1').click(function () {
// console.log(alert(456))});
$('.s1').click(function (e) {
console.log(alert(123));
// e.stopPropagation()
// // 阻止事件向上传递
});
</script>
</body>
</html>
3 ) 事件委托的例子
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="content-Type" charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>Title</title>
<script src="jquery-3.3.1.min.js"></script>
</head>
<body>
<input type="button" class="b1" value="点我">
<script>
$('body').on('click','.b1',function () {
console.log(alert(123))
});
buttonele = document.createElement('button');
buttonele.innerText = '点我1';
$(buttonele).addClass('b1');
$('body').append(buttonele)
// 由于先绑定事件, 后再添加jQuery, 当刷新页面的时候,点击点我1 是不会被绑定事件的.
//由此引出事件冒泡: 当给最外层事件添加事件时, 点击最里面的事件都会冒泡到最外层事件, 所以都会触发, 这就是事件委托,委托他们父级代为执行
//所以用到on
// $('body').on('click','.b1',function () {
// console.log(alert(123))
// });
</script>
</body>
</html>

浙公网安备 33010602011771号