Jquery中DOM操作(详细)

2024-06-20 18:58

本文主要是介绍Jquery中DOM操作(详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Jquery中的DOM操作

为了能全面的讲解DOM操作,首先需要构建一个网页。

HTML代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head></head><body><p title="选择你最喜欢的水果。">你最喜欢的水果是?</p><ul><li title='苹果'>苹果</li><li title='橘子'>橘子</li><li title='菠萝'>菠萝</li></ul></body>
</html>

n 节点操作:

一、查找节点

1、查找元素节点

获取元素节点并打印它的文本内容,jQery代码如下:

var li_txt=$("ul li:eq(1)").text();//获取<ul>里第二个<li>节点的文本内容alert(li_txt);//结果为橘子

2、查找属性节点

利用jQuery选择器查找到需要的元素之后,就可以使用attr()方法来获取它的各种属性的值,attr()方法的参数可以是一个,也可以是两个,当参数是一个时,则是要查询属性的名字,例如:

获取属性节点并打印它的文本内容:

var p_txt=$("p").attr("title");//获取<p>元素节点属性titlealert(p_txt);//结果为  选择你最喜欢吃的水果

二、创建节点

DOM操作中,常常需要动态创建HTML内容,使文档在浏览器里的呈现效果发生变化,并且达到各种各样的人机交互目的

1、创建元素节点

如果要创建两个<li>元素节点,并要把他们作为<ul>元素节点的子节点添加到DOM节点树上。则需要:

(1)创建<li>新元素

(2)将新元素插入到文档中

首先创建<li>元素:
var $li_1=$("<li></li>");//创建<li>元素
然后使用jQuery中的append等方法将新元素插入文档中
$("ul").append($li_1);//添加到<ul>节点中,使之能在网页中显示

注意:

1、动态创建的新元素节点不会被自动添加到文档中,而是需要使用其他方法将其插入文档中

2、当创建单个元素时,要注意闭合标签和使用标准的XHTML格式。

2、创建文本节点

创建文本节点就是在创建元素节点时直接把文本内容写出来,然后使用append()等方法将它们添加到文档中就可以。

var $li_1=$("<li>香蕉</li>");//创建一个<li>元素,"香蕉"就是创建的文本节点
$("ul").append($li_1);//添加到<ul>节点中,使之能在网页中显示

注意:无论$(html)中的HTML代码多么复杂,都要使用相同的方式来创建。

例如:$(“<li><em>这是</em><b>一个</b><a href=”#”>复杂的组合</a></li>”)

3、创建属性节点

创建属性节点与创建文本节点类似:

var $li_1=$("<li title='香蕉'>香蕉</li>");//创建一个<li>元素,title="香蕉"就是创建的title="香蕉属性节点 $("ul").append($li_1);//添加到<ul>节点中,使之能在网页中显示

三、插入节点

append()

向每个匹配的元素内部追加内容:

HTML代码:
<p>我想说:</p>
jQuery代码:
$("p").append("<b>你好</b>");
结果:
<p>我想说:<b>你好</b></p>

appendTo()

将所有匹配的元素追加到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是将B追加到A中,而是将A追加到B中:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("<b>你好</b>").appendTo("p");

结果:

<p>我想说:<b>你好</b></p>

prepend()

向每个匹配的元素内部前置内容:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("p").prepend<"<b>你好</b>");

结果:

<p><b>你好</b>我想说:</p>

prependTo()

将所有匹配的元素前置到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).prepend(B)的操作,即不是将B前置到A中,而是将A前置到B中:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("<b>你好</b>").prependTo("p");

结果:

<p><b>你好</b>我想说:</p>

after()

在每个匹配的元索之后插入内容:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("p").after("<b>你好</b>");

结果:

<p>我想说:</p><b>你好</b>

insertAfler()

将所有匹配的元素插入到指定元素的后面。实际上,使用该方法是颠倒了常规的$(A).after(B)的操作,即不是将B插入到A后面,而是将A插入到B后面:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("<b>你好</b>").insertAfter("p");

结果:

<p>我想说:</p><b>你好</b>

before()

在每个匹配的元素之前插入内容:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("p").before("<b>你好</b>");

结果:

<b>你好</b><p>我想说:</p>

insertBefore()

将所有匹配的元素捅入到指定的元素的前面。实际上,使用该方法是颠倒了常规的$(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面:

HTML代码:

<p>我想说:</p>

jQuer代码:

$("<b>你好</b>").insertBefore("p");

结果:

<b>你好</b><p>我想说:</p>

这些插入节点的方法不仅能将新创建的DOM元素插入到文档中,也能对原有的DOM元素进行移动。例如利用它们创建新元素并对其进行插入操作:

$(function(){
var $li_1 = $("<li title='新增节点:数据结构'>新增节点:数据结构</li>");    //  创建第一个<li>元素
var $li_2 = $("<li title='新增节点:设计模式'>新增节点:设计模式</li>");    //  创建第二个<li>元素
var $li_3 = $("<li title='新增节点:计算机算法'>新增节点:计算机算法</li>");	//  创建第三个<li>元素var $parent = $(".nm_ul");	 // 获取<ul>节点。<li>的父节点
var $two_li = $(".nm_ul li:eq(1)");	//  获取<ul>节点中第二个<li>元素节点
$("#btn_1").click(function(){
$parent.append($li_1);	    // 添加到<ul>节点中,使之能在网页中显示
});
$("#btn_2").click(function(){
// 可以采取链式写法:$parent.append($li_1).append($li_2);
$parent.append($li_2);	    
});
$("#btn_3").click(function(){
//  insertAfter方法将创建的第三个<li>元素元素插入到获取的<li>之后
$li_3.insertAfter($two_li);    
});
});

也利用它们对原有的DOM元素进行移动:

$(function(){
var $one_li = $("ul li:eq(1)");	// 获取<ul>节点中第二个<li>元素节点
var $two_li = $("ul li:eq(2)"); // 获取<ul>节点中第三个<li>元素节点
$two_li.insertBefore($one_li);	//移动节点
});

四、删除节点

1、Remove

$("ul li:eq(1)").remove();//获取第2个<li>元素节点后,将它从网页中删除

这个方法的返回值是一个指向已被删除的节点的引用,因此可以在以后再使用这些元素。

$("ul li").remove("li[title!=菠萝]");

2、Empty

严格来讲,empty()方法并不是删除元素,而是清空节点,它能清空元素中所有的后代节点。

$("ul li:eq(1)").empty();//获取第2个<li>元素节点后清空此元素里的内容,注意是元素里

五、复制节点

复制实现了节点重用,而不用另外新建,复制的时候可以一并复制节点上面的行为(也就是绑在它上面的事件),也可以只复制节点,分别使用clone(true)clone()
   例如:

    $("ul li").click(function(){$(this).clone().appendTo("ul")//复制当前的li单击节点,并将其最加到ul元素下})

六、替换节点
  替换是将已经存在的节点替换成其他的,使用的方法有replaceWith()replaceAll()
   replaceWith():XXXXX替换掉
   replaceAll():那XXX替换所有的XX
七、包裹节点
  包裹节点的意思就是将某个或者是符合条件的一组节点用其他的标记包裹起来,在jquery中使用wrap()
   例如:

    $("strong").wrap("<b></b>");//使用b标签把strong元素包裹起来
   包裹的方法还有wrapAll(),wrapInner()
    wrapAll:将所有匹配的元素用一个元素来包裹<wrap的不同是,wrap对每个符和条件的元素都进行包裹,而wrapAll不是>
    wrapInner:将每个匹配的元素的子内容进行包裹
    $("strong").wrapInner("<b></b>");//strong元素的子元素被b标签包

n 属性操作:

1、.获取和设置属性

var $var_1=$("p");//这句话是获取节点Pvar $p_1=$var_1.attr("title");//获取节点P的title属性
var $p_2=$var_1.attr("title","你好");//设置节点P的title属性为"你好"

2、.删除属性

$("p").removeAttr("title");//删除节点P的Title属性

样式操作:

1.获取和设置样式

var $var_class=$("p").attr("class");//获取节点Pclass属性

$("p").attr("class","class1");设置节点Pclass属性为样式表类class1

2.追加样式

addClass() 添加样式到

例子:$("p").addClass("another");添加样式表类another类到P

3.移除样式

removeClass() 移除类 

4.切换样式

toggleClass() 切换clss属性类为新的类 

5.判断某个样式是否存在

hasClass() 

n 内容操作:

html() 该方法获取html元素的内容,如:var var1=$("p").html();//获取P元素内的内容 

text() 获取或设置某个html元素的内容 

val() 获取元素的Value值 

children() 获取html元素的所有子节点 

next()  获取html元素后紧邻的同辈节点 

prev() 获取html元素前紧邻的同辈节点 

siblings() 获取html元素前后紧邻的同辈节点 

n CSS-DOM技术:

$("p").css("color");//获取颜色属性

$("p").css("color","red");//设置颜色

$("p").css({"fontSize""30px",”backgroundColor“:”#888888});//同时设置多个样式。

有两个注意点:

(1)如果值是数字,将会被自动转化为像素值。

(2)css()方法中,如果属性中带有”-“符号,例如font-sizebackground-color属性,用驼峰式写法。

hight().width();

offset()  .left .top  获取元素在当前视窗的偏移量,返回值对象包含两个属性lefttop

position()  .left .top 获取元素相对于最近的一个position样式属性设置为relative或者absolute的祖父节点的偏移量。

scrollTop() scrollLeft()方法。分别获取元素的滚动条距顶端的距离和距左侧的距离。也可以设置值。scrollTop(300)

 

这篇关于Jquery中DOM操作(详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078976

相关文章

PostgreSQ数据库实现在Windows上异地自动备份指南的详细教程

《PostgreSQ数据库实现在Windows上异地自动备份指南的详细教程》这篇文章主要为大家详细介绍了如何在Windows系统上实现PostgreSQL数据库的异地自动备份,文中的示例代码讲解详细,... 目录前期准备实现步骤步骤一:创建备份脚本步骤二:配置免密登录(可选但推荐)步骤三:设置任务计划程序步

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

MySQL游标和触发器的操作流程

《MySQL游标和触发器的操作流程》本文介绍了MySQL中的游标和触发器的使用方法,游标可以对查询结果集进行逐行处理,而触发器则可以在数据表发生更改时自动执行预定义的操作,感兴趣的朋友跟随小编一起看看... 目录游标游标的操作流程1. 定义游标2.打开游标3.利用游标检索数据4.关闭游标例题触发器触发器的基

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

在C#中分离饼图的某个区域的操作指南

《在C#中分离饼图的某个区域的操作指南》在处理Excel饼图时,我们可能需要将饼图的各个部分分离出来,以使它们更加醒目,Spire.XLS提供了Series.DataFormat.Percent属性,... 目录引言如何设置饼图各分片之间分离宽度的代码示例:从整个饼图中分离单个分片的代码示例:引言在处理

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流