jQuery 的 DOM 操作

简介: jQuery 的 DOM 操作

jQuery 的 DOM 操作


查找节点, 修改属性


查找属性节点: 查找到所需要的元素之后, 可以调用 jQuery 对象的 attr() 方法来获取 它的各种属性值

//获取图片的路径、高属性
$("img").attr("src", "../image/1.png");
$("img").attr("height", "200")


创建节点


使用 jQuery 的工厂函数 $(): $(html标签); 会根据传入的 html 标记字符串 创建一个 jQuery 对象,


动态创建的新元素节点不会被自动添加到文档中, 需要使用其他方法将其插入到 文档中; .当创建单个元素时, 必须使用标准的 XHTML 格式,标签一定要闭合. 例:用( " < p / > " ) 或 ("<p/>")或("<p/>")或(“”).


创建文本节点就是在创建元素节点时直接把文本内容写出来; 创建属性节点也是在创建元素节点时一起创建.


内部插入法


内部插入法是在 元素内插入内容(该内容变成该元素的子元素或节点)

1.append(content) :向每个匹配的元素的内部的结尾处追加内容.

$('#sh').append($myli)// 表示 在 $('#sh')对象内部后面添加一个 $myli 对象


2.appendTo(content) :将每个匹配的元素追加到指定的元素中的内部结尾处.

$myli.appendTo($("#city")); //表示把$myli 添加到 $("#city")对象的内部
后面


3.prepend(content):向每个匹配的元素的内部的开始处插入内容.

//***添加成都 li 到 北京前
$("#b2").click(function () {
//jqury 方法
$myli = $("<li id='cd' name='chengdu'>成都</li>");
$('#city').prepend($myli);
//$myli.prependTo($('#city'));
})


4.prependTo(content) :将每个匹配的元素插入到指定的元素内部的开始处.

$myli.prependTo($('#city'));


外部插入法


外部插入法是在元素的外面插入内容(其内容变成元素的兄弟节点)


1.after(content) :在每个匹配的元素之后插入内容.

//*** 添加成都 li 到 北京和重庆之间
$('#b4').click(function () {
//$("#bj").after("<li id='cd' name='chengdu '>成都</li>");


2.before(content):在每个匹配的元素之前插入内容.

//*** 添加成都 li 到 吉林前面
$('#b5').click(function () {
//使用外部插入, 一步到位
//$("#jl") 对象前面添加 "<li id='cd' name='chengdu '>成都</li>";
var $cd= $("<li id='cd' name='chengdu'>成都</li>");
//$("#jl").before($cd);
})


3.insertAfter(content):把所有匹配的元素插入到另一个、指定的元素元素集合的后面.

$("<li id='cd' name='chengdu '>成都</li>").insertAfter($('#bj'));})


4.insertBefore(content) :把所有匹配的元素插入到另一个、指定的元素元素集合的前面.

$cd.insertBefore($('#jl'));


删除节点


1.remove():

从 DOM 中删除所有匹配的元素. 当某个节点用 remove() 方法删除后, 该节点所包含的所有后代节点将被同 时删除. 这个方法的返回值是一个指向已被删除的节点的引用.

//*****删除所有 p
$("#b1").click(function () {
$("p").remove();
})
//****删除上海这个 li
$("#b3").click(function (){
$("#sh").remove();
})


2.empty():

清空节点 – 清空元素中的所有后代节点(不包含属性节点)

//***所有 p 清空
$("#b2").click(function () {
$("p").empty();
})


复制节点

1、clone(): 克隆匹配的 DOM 元素, 返回值为克隆后的副本. 但此时复制的新节点不具有 任何行为.

//克隆节点,不克隆事件,添加到p元素内部后面
$("button").clone().appendTo("p");


2、clone(true): 复制元素的同时也复制元素中的的事件

//克隆节点,克隆事件,添加到p元素内部后面
$("button").clone(true).appendTo("p");


替换节点


1.replaceWith(): 将所有匹配的元素都替换为指定的 HTML 或 DOM/juqery 元素 A.replaceWith(B)

前面的替换到后面

//1. 将 p 替换成 button
//$("p").replaceWith("<input type='button' id='my' value='我的按钮'/>")


2.replaceAll(): 颠倒了的 replaceWith() 方法.A.replaceAll(B)

如果若在替换之前, 已经在元素上绑定了事件, 替换后原先绑定的事件会与原先的元 素一起消失,

后面的替换到前面

//用粗体文本替换每个段落:
$(".b1").click(function(){
   $("p").replaceAll("<b>Hello world!</b>");
});


属性操作


1.attr(): 获取属性和设置属性


2.attr()传递一个参数时, 即为某元素的获取指定属性


3.attr()传递两个参数时, 即为某元素设置指定属性的值


4.jQuery 中有很多方法都是一个函数实现获取和设置. 如: attr(), html(), text(), val(), height(), width(), css() 等, 后面我们还会举例说明.


5.removeAttr(): 删除指定元素的指定属性


样式操作


1.获取 class 和设置 class :

class 是元素的一个属性, 所以获取 class 和设置 class 都可 以使用 attr() 方法来完成.

//获取class和设置 class 都可以使用 attr() 方法来完成.(给 id 为 first 添加 .one 样式
$("#b1").click(function (){
$("#first").attr("class", "one");
})


2.追加样式: addClass()

//追加样式: addClass()
$("#b2").click(function (){
$("#first").addClass("one");
})


3.移除样式: removeClass()

从匹配的元素中删除全部或指定的 class

//移除样式: removeClass() --- 从匹配的元素中删除全部或指定的 class
$("#b3").click(function (){
$("#first").removeClass();
})


4.切换样式: toggleClass()

控制样式上的重复切换.如果类名存在则删除它, 如果类名 不存在则添加它.

//切换样式: toggleClass() --- 控制样式上的重复切换.如果类名存在则删除它, 如果类名不存在则添加它
$("#b4").click(function (){
$("#first").toggleClass("one");
})


5.判断是否含有某个样式: hasClass()

判断元素中是否含有某个 class, 如果有, 则返回 true; 否则返回 fals

$("#b5").click(function (){
alert($("#first").hasClass("one"));
})


获取 HTML, 文本和值


1、设置或返回所选元素的内容(包括 HTML 标记): html()

2、读取和设置某个元素中的文本内容: text(). 该方法既可以用于 HTML 也可以用于 XML 文档.

$(this).text();


3、读取和设置某个元素中的值: val() — 该方法类似 JavaScript 中的 value 属性. 对于文 本框, 下拉列表框, 单选框该方法可返回元素的值

//获取到当前值
var currentVal = $(this).val()


常用遍历节点方法


1、取得匹配元素的所有子元素组成的集合: children().

//**查找所有子元素(class 为 one的 div 的子元素)
var $ div=$("div[class='one']").children()


2、取得匹配元素后面的同辈元素的集合:next()/nextAll();

//***获取后面的同辈 div 元素(class 为 one 的 div 的)
$("div.one").nextAll().filter("div")


3、取得匹配元素前面的同辈元素的集合:prev()/prevAll();

//**获取前面的同辈 div 元素(class 为 one 的 div 的)
$("#b3").click(function () {
//遍历
// $("div.one").prevAll().filter("div").each(function (){
// alert("div 的内容= " + $(this).text());
// })


4、取得匹配元素前后所有的同辈元素: siblings()

//**获取所有的同辈 div 元素(class 为 one 的 div 的)
$("#b4").click(function () {
$("div.one").siblings().filter("div").each(function () {
alert("同辈 div text= " + $(this).text())
})


5、获取指定的第几个元素: nextAll().eq(index)

//指定获取到第几个子元素, eq(1) 表示得到第 2 个子元素
//alert($("div.one").children().eq(1).text());


CSS-DOM 操作


juery CSS操作函数

function () {

$(“div.one”).siblings().filter(“div”).each(function () {

alert("同辈 div text= " + $(this).text())

})

5、获取指定的第几个元素: nextAll().eq(index)


//指定获取到第几个子元素, eq(1) 表示得到第 2 个子元素

//alert($(“div.one”).children().eq(1).text());

####  CSS-DOM 操作
juery CSS操作函数
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/3931f3da99334c18a4ec2e7e42527f8e.png)


相关文章
|
27天前
|
JavaScript 前端开发
低效的DOM操作(js的问题)
低效的DOM操作(js的问题)
|
27天前
|
缓存 JavaScript 前端开发
JavaScript中DOM操作:新手常犯错误与避免策略
【4月更文挑战第1天】本文介绍了JavaScript中DOM操作的基础和新手常犯错误,包括频繁查询DOM、不恰当的遍历、滥用innerHTML、忽视异步与DOM状态以及过度同步更新。建议包括缓存DOM引用、注意文本节点、慎用innerHTML以防止XSS、正确处理异步和批量更新。遵循最佳实践,开发者能提升代码质量和应用性能。
24 2
|
2月前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
16 1
|
1天前
|
JavaScript 前端开发 开发者
【Web 前端】如何操作DOM元素?
【4月更文挑战第22天】【Web 前端】如何操作DOM元素?
|
5天前
|
JavaScript
js_操作dom(委托和冒泡事件)
js_操作dom(委托和冒泡事件)
8 0
|
8天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
15天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
16 0
|
15天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
16 4
|
15天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何检测浏览器是否支持某个特性?
【4月更文挑战第15天】使用Modernizr库检测浏览器特性:添加 `<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>` 到HTML,然后通过 `Modernizr.localstorage` 进行检测,如支持localStorage则执行相应代码,否则执行备用逻辑。
15 0
|
16天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何选中一个 HTML 元素?有哪些方法?
在JavaScript中,有五种主要方法选取HTML元素:1) `getElementById` 通过id选取单个元素;2) `getElementsByClassName` 选取具有特定类名的所有元素;3) `getElementsByTagName` 选取特定标签的所有元素;4) `querySelector` 使用CSS选择器选取单个元素;5) `querySelectorAll` 选取匹配CSS选择器的所有元素。这些方法结合使用可精确地定位到DOM树中的目标元素。
12 1