jQuery节点操作
创建元素
- 语法:$('<li></li>);
追加元素1
- 向父元素最后追加
语法:父元素jQuery对象.append(新创建的jQuery对象);
语法:新创建jQuery对象.appendTo('父元素选择器' 或 父元素jQuery对象)
var $newLi = $("<li>这是新的li标签</li>");
var $ul = $("ul");
// 向父元素最后添加新的子元素
// $ul.append($newLi);
// $newLi.appendTo($ul);
$newLi.appendTo("ul");
- 向父元素最前面追加
语法:父元素jQuery对象.prepend(新创建的jQuery对象);
语法:新创建jQuery对象.prependTo('父元素选择器' 或 父元素jQuery对象);
<script>
// 向父元素最前面添加
// $ul.prepend($newLi);
// $newLi.prependTo($ul);
$newLi.prependTo("ul");
</script>
追加元素2
- 向元素后面追加新的兄弟
语法:jQuery对象.after(新创建的jQuery对象); 语法:新创建jQuery对象.insertAfter('选择器' 或 jQuery对象);
var $newLi = $("<li>这是新的li标签</li>");
var $ul = $("ul");
var $oldLi = $(".old");
// 元素后面增加一个新的兄弟元素
// $oldLi.after($newLi);
$newLi.insertAfter($oldLi);
- 向元素前面追加新的兄弟
语法:jQuery对象.before(新创建的jQuery对象); 语法:新创建jQuery对象.insertBefore('选择器' 或 jQuery对象);
var $newLi = $("<li>这是新的li标签</li>");
var $ul = $("ul");
var $oldLi = $(".old");
// 元素前面添加一个新的兄弟元素
// $oldLi.before($newLi);
$newLi.insertBefore($oldLi);
删除元素
- 语法:jquer对象.remove()
- 删除谁就让谁调用这个方法就行了
清空元素
- 清空方式1:jQuery对象.empty():推荐使用,清空内部的所有元素以及元素相关的事件
- 清空方式2:jQuery对象.html(''):仅仅清空内部的元素,不清理内存中的元素的事件
<script>
// 删除元素自己
// $(".third").remove();
// 清空元素内部的所有子节点
// 方法1: empty() 方法,清除所有子节点的同事,清除子节点上的事件
$("ul").empty();
// 方法2: html() 方法,将参数设置为空字符串
$(".box").html("");
</script>
jQuery克隆元素
- 语法:jQuery对象.clone(布尔值); 返回克隆好的元素
- 参数:默认是false,表示仅仅克隆内容。 true,克隆内容和事件
<body>
<div class="box">
<h2>标题1</h2>
<p>段落1</p>
</div>
<div class="demo">
<h2>标题2</h2>
<p>段落2</p>
</div>
<script src="js/jquery-1.12.4.min.js"></script>
<script>
$(".box").click(function(){
alert("你好");
});
// 获取 box 元素
var $box = $(".box");
// 克隆 box
// var $newBox = $box.clone(false); //只克隆内容,不克隆事件
var $newBox = $box.clone(true); //克隆内容,克隆事件
// // 添加到 body 最后
$("body").append($newBox);
</script>
</body>
操作元素的尺寸
wdith()和height()方法
操作的大小仅仅是内容部分
- 设置:
语法:jQuery对象.width(数字); - 获取:
语法:jQuery对象.width();
innerWidth()和innerHeight()方法
操作的大小是内容部分 + padding
- 设置:
语法:jQuery 对象.innerWidth(数字); - 获取:
语法:jQuery 对象.innerWidth();
outerWidth() 和 outerHeight() 方法
操作的大小是内容部分 + padding + border
- 设置:
语法:jQuery 对象.outerWidth(数字); - 获取:
语法:jQuery 对象.outerWidth();
inner和outer这两类方法的数据设置,将增加或减少的值设置给了 width 属性
操作元素的位置
获取元素距离文档的位置
- 语法:jQuery 对象.offset();
- 返回一个对象,对象中包含了元素的位置
- 注意:offset() 方法获取的元素的位置,永远参照文档,和定位没有关系.
距离上级定位参考元素的位置
- 语法:jQuery 对象.position();
- 返回的一个对象,对象中包含了元素的位置
- 注意:position() 方法获取的元素的位置,参照最近的定位元素(和定位有关系)
// 获取元素距离文档的位置
var $son = $(".son");
var offsetObj = $son.offset();
console.log(offsetObj)
console.log(offsetObj.left)
console.log(offsetObj.top)
// 获取元素距离上级定位参考元素的位置
var positionObj = $son.position();
console.log(positionObj)
console.log(positionObj.left)
操作卷去的页面间距
- 获取
语法:jQuery 对象.scrollTop(); 返回数字 - 设置
语法:jQuery 对象.scrollTop(数字);
// 给元素添加滚动事件
$(".box").scroll(function () {
// 获取滚动条卷走的距离
console.log($(this).scrollTop())
})
// 给文档设置滚动事件
$(document).scroll(function () {
// 获取滚动条卷走的距离
console.log($(this).scrollTop())
})
// 通过点击返回顶部按钮,将文档的卷走的距离设置为 0
$(".backtop").click(function () {
// 设置 scrollTop 的值
$(document).scrollTop(0)
})