jQuery 的 DOM操作

本文介绍jQuery中DOM操作的基础知识,包括节点的查找、创建、插入、删除、复制、替换、包裹、属性及样式操作等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jQuery 中的 DOM 操作包含查找节点、创建节点、插入节点、删除节点、复制节点、替换节点、包裹节点、属性操作、样式操作、设置和获取 HTML 文本和值、遍历节点。

1、查找节点

1.1 查找元素节点

查找元素节点就是通过选择器选取节点:

   1:  var $li = $("ul li:eq(22)");

1.2 查找属性节点

在 jQuery 中查找到元素节点后就可以利用 attr() 方法获取节点的属性了:

   1:  var $para = $("p");  
   2:  var p_text = $para.attr("tittle");
2、创建节点

$(html) 方法会根据传入的 html 标记字符串创建一个 DOM 对象,并将 DOM 对象包装成 jQuery 对象返回。

2.1 创建元素节点

   1:  var $li = $("
  • "
);

创建的节点作为参数通过 appen() 方法插入文档中:

   1:  $("ul").appen($li);

2.2 创建属性节点

创建属性节点合创建元素节点一样,只需要将属性写在 html 语句中即可:   Honey

   1:  var $li = $("
  • "
);
3、插入节点
方法HTML 代码jQuery 代码结果
append()

Baby

$("p").append("Honey")

BabyHoney

appendTo()

Baby

$("Honey").appenTo("p")

BabyHoney

prepend()

Baby

$("p").prepend("Honey")

HoneyBaby

prependTo()

Baby

$("Honey").prependTo("p")

HoneyBaby

after()

Baby

$("p").after("Honey")

Baby

Honey
insertAfter()

Baby

$("Honey").insertAfter("p")

Baby

Honey
before()

Baby

$("p").before("Honey")Honey

Baby

insertBefore()

Baby

$("Honey").insertBefore("p")Honey

Baby

插入节点的节点对象既可以是新创建的节点元素,也可以是从文档中选取的节点元素:

   1:  $("ul").append("
  • Baby
  • "
);//对新创建的节点进行插入;
   2:  $("ul").append($(".cc")); //对已有的节点进行插入(即移动原节点)
4、删除节点

首先通过 $(html) 查找节点,然后调用 remove() 方法删除节点:

   1:  $("ul li:even").remove();

此外我们还可以通过调用 empty() 方法清空节点:

   1:  $("ul li:even").empty();

假设我们有如下 html 代码:

   1:  <ul>
   2:      <li>1</li>
   3:      <li>2</li>
   4:      <li>3</li>
   5:      <li>4</li>
   6:      <li>5</li>
   7:      <li>6</li>
   8:  </ul>

在 $("ul li:even").empty() 代码作用后,通过 firebug 查看代码如下:

 
   1:  <ul>
   2:      <li></li>
   3:      <li>2</li>
   4:      <li></li>
   5:      <li>4</li>
   6:      <li></li>
   7:      <li>6</li>
   8:  </ul>

可见 empty() 方法清空了

  • 标签内的内容。

5、复制节点

复制节点可以调用 clone() 方法:

   1:  $("ul li").clone().appenTo("ul");

复制节点还有一个 clone(true) 方法:

   1:   $("ul li").clone(true).appenTo("ul");
 
带有参数 true 的方法意味着复制出来的节点同时包含了元节点所绑定的事件,不带参数的仅仅是复制节点而已,不包含事件。
 
6、替换节点

替换节点也有两个方法,分别是 replaceWith() 和 replaceAll() ,replaceWith () 是调用者替换成参数,而 replaceAll() 是将参数替换成调用者:

   1:  $("p").raplaceWith("baby");
   2:  $("baby").replaceAll("p");

上面的两句代码等价,都是将

标签换成 baby

7、包裹节点

有如下 html :

   1:  <i>baby</i>
   2:  <i>baby</i>

执行包裹节点有三个方法 wrap()、 wrapAll() 和 wrapInner()。

a、当使用 wrap() 方法时候:

   1:  $("i").wrap("
"
);

结果如下:

   1:  <div><i>baby</i></div>
   2:  <div><i>baby</i></div>

b、当使用 wrapAll() 方法时候:

   1:   $("i").wrapAll("
"
);

结果如下:

   1:  <div>
   2:      <i>baby</i>
   3:      <i>baby</i>
   4:  </div>

c、当使用 wrapInner() 方法时候:

   1:  $("i").wrapInner("
"
);
 
结果如下:
   1:  <i><div>baby</div></i>
   2:  <i><div>baby</div></i>

8、属性操作

8.1 获取属性

就和查找属性节点一样,通过同样的方式获取属性:

   1:  var $para = $("p");
   2:  var p_text = $para.attr("title");

8.2 设置属性

如果想设置属性,我们可以通过下面的代码:

   1:  $("p").attr("title","baby");

两个参数分别问属性名称和属性值。

若要一次性的设置多个属性的话,我们采用以下代码:

   1:  $("p").attr({"title":"baby","id""honey","class":"banana"});

8.3 删除属性

删除属性我们使用 removeAttr() 方法:

   1:  $("p").removeAttr("title");
9、样式操作

9.1 获取样式

样式是标签的 class 属性,所以我们可以通过获取 class 属性来获取样式:

   1:  var $p _class = $("p").attr("class");

9.2 设置样式

还是通过 attr() 方法来设置 class 属性,即设置样式:

   1:  $("p").attr("class","highlight");
 
注意在设置样式的时候的 class 属性的值,即 highlight 不需要带 "." 了。
 
9.3 追加样式

追加样式是在原有的样式基础上再添加一个样式,可以通过 addClass() 方法实现:

   1:  $("div").addClass("highlight");

9.4 移除样式

当我们不需要此样式的时候,需要移除样式,但移除样式不等同于移除 class 属性:

   1:  $("p").removeClass("highlight");
 
当需要一次移除多个样式的时候,我们可以通过下面方法:
   1:  $("p").removeClass("highlight").removeClass("hot");
或者
   1:  $("p").removeClass("highlight hot");

有时候我们需要一次的移除所有属性,此时我们可以调用不带参数的 removeClass() 方法移除所有样式:

   1:  $("p").removeClass();

9.5 切换样式

切换样式我们可以使用一个简单的方法 toggle() 来实现:

   1:  $("#baby").toggle(
   2:      function(){
   3:          $("div").attr("class","highlight");
   4:      },function(){
   5:          $("div").attr("class","hot");
   6:      }
   7:  );
toggle() 方法就是在几个 function 之间不停的切换。

jQuery 还提供了一个更为简单的切换样式的方法 toggleClass() :

   1:  $("#baby").click(function(){
   2:      $("div").toggleClass("highlight");
   3:  });
toggleClass() 就是检查 $("div") 是不是已有 highlight 样式,如果有则将样式移去,若果没有则将样式加上。

9.6 判断是否含有某个样式

判断是否含有某个样式可以通过 hasClass() 方法,如果含有则返回 true,没有则返回 false:

   1:  $("p").hasClass("highlight");
10、设置和获取 html 、文本和值

10.1 html() 方法

html() 方法用于获取或设置某个元素中的 html 内容。

假设用如下 html 内容:

   1:  <p><stong>baby</strong></p>
通过下面的代码可以得到

元素内部的 html 代码:

   1:  $("p").html();

通过下面的代码可以设置

元素内部的 html 代码:

   1:  $("p").html("honey");

10.2 text() 方法

text() 方法和 html() 方法相似,可以取出或设置某个元素的文本内容:

   1:  var $p_text = $("p").text();
   2:  $("ul li").text($p_text);

10.3 val() 方法

val() 方法的作用也和上面的方法类似,可以取出或设置某个元素的值:

   1:  var $baby_val = $("#baby").val();
   2:  $("#honey").val($baby_val);
此外,val() 方法还可以改变单选和多选的默认选项:
   1:  $("#single").val("baby");
   2:  $("#multi").val(["baby","lady"]);//以数组形式赋值;
11、遍历节点

11.1 children() 方法

children() 方法是用来获取某元素的直接子元素集合的,不包含子元素的子元素:
   1:  $("ul").children("li").slideDown("slow");

11.2 next() 方法

next() 方法用于获取下一个同辈元素:

有如下 html :

   1:  <p>baby</p>
   2:  <i>lady</i>
调用下面代码:
   1:  $("p").next();
即可得到元素 lady

11.3 prev() 方法

prev() 方法和 next() 方法相反,prev() 方法用于获取上一个同辈元素,不演示了。

11.4 siblings() 方法

siblings() 方法用于获取某元素的前后的所有同辈元素集合。

遍历节点还有很多方法,jQuery 文档是个很好的参考。

---EOF---

DOM (Document Object Model) 分为 DOM Core 、HTML-DOM 和 CSS-DOM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值