开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:执~漠
撰写时间:2020年4月22日
- 在 HTML DOM 中,所有事物都是节点。
- jQuery创建节点
jQuery节点的创建: ( ) 函 数 处 理 , ()函数处理, ()函数处理,(“html结构”),jQuery创建的节点是一个jQuery对象。
例如:$("body").append("<div class='box'>这是一个通过jq创建的div</div>");
- jq节点的插入 向元素的内部插入DOM节点
append() 向每个匹配的元素内部追加内容
例如:$(A元素).append(B元素);将B元素添加到A元素中
appendTo() 把所有匹配的元素追加到另一个指定的元素元素集合中。
例如:$(A元素).appendTo(B元素);把A元素追加到B元素中
prepend() 向每个匹配的元素内部前置内容
例如:$(A元素).prepend(B元素);将B元素添加到A元素中(和append添加的元素有位置上的区别)
prependTo() 把所有匹配的元素前置到另一个、指定的元素元素集合中
例如:$(A元素).prependTo(B元素);把A元素追加到B元素中
- jQuery节点的插入 向元素的外部插入DOM节点
after() 在每个匹配的元素之后插入内容
例如:$(A元素).after(B元素); 在A元素后面插入B元素
before() 在每个匹配的元素之前插入内容
例如:$(A元素).before(B元素);在A前面插入B元素
insertAfter() 这个方法是颠倒了常规的$(A).after(B)的操作,即不是把B插入到A后面,而是把A插入到B后面(与after()是相反操作,功能都是一样的)
例如:$(A元素).insertAfter(B元素) 在B后面插入A元素
insertBefore() 颠倒了常规的$(A).before(B)的操作,即不是把B插入到A前面,而是把A插入到B前面。(与before()是相反操作,功能都是一样的)
例如:$(A元素).insertBefore(B元素) 在B前面面插入A元素
- jQuery元素节点
empty() 删除匹配的元素集合中所有的子节点
例如:$(".div1").empty();
remove([expr]) 从DOM中删除所有匹配的元素(元素本身与子元素都被删除)
例如:$(".div1"). remove ();删除这个元素
$("p"). remove ("#p3");删除p标签中id为p3这个元素
$("p").remove(".a"); 删除p标签中class为a这个元素
detach() 从DOM中删除所有匹配的元素(注意与remove的区别)
这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来
$(“div”).detach()这一句会移除对象,仅仅是显示效果没有了。但是内存中还是存在的。当你append之后,又重新回到了文档流中。就又显示出来了。
例如:在div1放了8个p标签和2个按钮效果如图:
代码:
<body>
<div class="div1">
<p>1</p>
<p>2</p>
<p id="p3">3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
</div>
<button id="www">改变颜色</button>
<button id="aaa">append</button>
<script type="text/javascript" src="jquery-3.5.0.min.js"></script>
<script>
$("#aaa").click(function(){
ele=$(".div1").detach();
$("body").append(ele);
})
$("#www").click(function () {
$(".div1").css("backgroundColor","#123456");
})
</script>
</body>
按了按钮后的效果:
6. jQuery 元素的筛选
eq(index|-index):获取当前链式操作中第N个jQuery对象,返回jQuery对象,当参数大于等于0时为正向选取,比如0代表第一个,1代表第二个。当参数为负数时为反向选取,比如-1为倒数第一个
参数说明:
index 一个整数,指示元素基于0的位置,这个元素的位置是从0算起。
-index 一个整数,指示元素的位置,从集合中的最后一个元素开始倒数。(-1算起)
first() 获取第一个元素
last()获取最后个元素
hasClass(class) 检查当前的元素是否含有某个特定的类,如果有,则返回true,这其实就是 is("." + class)。
filter(expr|obj|ele|fn) 筛选出与指定表达式匹配的元素集合。这个方法用于缩小匹配的范围。用逗号分隔多个表达式
find(expr|obj|ele)搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法
例如:$("p").eq(-1).css("backgroundColor","#654321");给最后一个元素添加背景颜色。
$("p").eq(0).css("backgroundColor","#654321");给第一个元素添加背景颜色。
console.log($("p").eq(-6).hasClass("p3"));判断倒数第6个p标签是否有p3这个类。
var a=$(".div1").find("p");console.log(a);返回的是一个数组