HTML 学习笔记 JQuery(DOM 操作2)
接着上一节的将,这一节从复制节点讲起
复制节点
继续使用之前的例子 如果单击<li>元素后 需要在复制一个<li>元素,可以使用clone()方法完成。全部代码如下
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../js/jquery-2.1.1.min.js"></script>
</head>
<body>
<p title="选择你喜欢的水果">你最喜欢的水果?</p>
<ul>
<li title="苹果">苹果</li>
<li title="橘子">橘子</li>
<li title="菠萝">菠萝</li>
</ul>
<script> $("ul li").click(function() {
$(this).clone().appendTo("ul");
}) </script>
</body>
</html>
复制节点后,被复制的新元素并不具备任何行为,如果需要新元素也具有复制功能 可以修改以上代码成为下面的代码
$("ul li").click(function() {
$(this).clone(true).appendTo("ul");
})
在clone()方法中传入了一个true 他的含义是复制元素的同时复制元素中所绑定的事件,因此该元素也同样具有复制功能
替换节点
如果替换某个节点,JQuery提供了相应的方法 即ReplaceWith()和ReplaceAll()。
ReplaceWith()方法的作用是将所有的匹配元素替换成指定的HTML或者DOM元素。
例如将上例中的<p title = "选择你最喜欢的水果">你最喜欢的水果?</p> 替换一下
$("p").replaceWith("<strong>你最喜欢的水果是什么呢</strong>");
也可以使用replaceAll()来实现,该方法于replaceWith()方法的作用相同,只是颠倒了replaceWith()操作
$("p").replaceWith("<strong>你最喜欢的水果是什么呢</strong>");
//下面的代码和上面是一样的
$("<strong>你最喜欢的水果是什么呢</strong>").replaceAll("p");
注意 如果在替换之前 已经为元素绑定事件,替换后原先绑定的事件将会与被替换的元素一起消失 需要在新元素上重新绑定事件
包裹节点
如果要将某个节点用其他标记包裹起来,可以使用wrap(),该方法对于需要在文档中插入额外的结构化标记非常有用。而且他不会破坏原始文档的语义。
$("strong").wrap("<b>一二</b>")
包裹节点 还有其他两个方法
wrapAll()
该方法用于将所有匹配的元素用一个元素来包裹(匹配的所有元素放在一起被包裹一次),它不同于wrap()方法。wrap()方法是将所有的元素进行单独包裹,就是每个匹配的元素都会被包裹一次。
<p title="选择你喜欢的水果">你最喜欢的水果?</p>
<p title="选择你最喜欢的水果">你的最爱</p>
执行一下代码
$("p").wrap("<b></b>");
会变成一下效果
<b><p>你最喜欢的水果</p></b>
<b><p>你的最爱</p></b>
而使用wrapAll()呢
$("p").wrapAll("<b></b>");
是这样的效果
<b>
<p title="选择你喜欢的水果">你最喜欢的水果?</p>
<p title="选择你最喜欢的水果">你的最爱</p>
</b>
wrapinner()方法
该方法是将每一个匹配的元素的字内容(包括文本节点)用其他结构化的标记包裹起来
例如
$("p").wrapInner("<b style='color: red;'></b>")
运行后是这样的
<p title="选择你喜欢的水果"><b>你最喜欢的水果?</b></p>
效果

属性操作
1.获取属性和设置属相
在JQuery中使用attr()方法来获取属性 使用removeattr()来删除属性
//获取属性 移除属性
alert($("p").attr("title"));
if ($("p").length > 0) {
$("p").removeAttr("title");
}
alert($("p").attr("title") + "哈哈哈");//undefined哈哈哈哈
//设置属性
$("p").attr("title","我是新的title");
alert($("p").attr("title"));//我是新的title
样式操作
1.获取样式和设置样式
HTML代码如下
<p class="myClass" title="选择你喜欢的水果">你最喜欢的水果?</p>
CSS 样式表
<style>
.addStyle {
font-weight: bold;
color: red;
/*斜体*/
font-style: italic;
}
</style>
给p元素添加样式
//给p元素添加样式
$("p").addClass("addStyle");
效果

移除样式
$("p").removeClass("addStyle");
效果

切换样式
JQuery中有一种方法toggle() 代码如下
$("p").toggle(function() {
代码3
},function() {
代码4
});
toggle()方法此处的作用就是交替之行代码3和代码4两个函数。在这种情况下toggle()方法主要是控制行为上的重复切换
此外JQuery也提供了toggleClass()方法控制样式上的重复切换 如果类名存在久删除它 如果类名不存在就添加它.
对p元素进行操作
$("p").click(function(){
$(this).toggleClass("addStyle");
})
当单击p元素后 会变成这样
<p class="myClass addStyle" title="选择你喜欢的水果">你最喜欢的水果?</p>
在此点击会变成原来的样子
<p class="myClass" title="选择你喜欢的水果">你最喜欢的水果?</p>
就这样不断的切换
判断是否还有某个样式使用方法hasClass("yangshi");
HTML 学习笔记 JQuery(DOM 操作2)的更多相关文章
- jQuery学习笔记之DOM操作、事件绑定(2)
jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...
- jQuery学习笔记(DOM操作)
DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM. 1. DOM Core DOM Core并不专属于JavaScript,任何一种支持DOM的 ...
- jQuery DOM操作之结点转移复制
jQuery DOM操作之结点转移复制 $('div').append($('p'))这样即可把p标签移动到div标签里 $('div').append( $('p').html() )是把p标签里的 ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- java学习笔记07--日期操作类
java学习笔记07--日期操作类 一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- JQuery DOM操作(属性操作/样式操作/文档过滤)
jQuery——入门(三)JQuery DOM操作(属性操作/样式操作/文档过滤) 一.DOM属性操作 1.属性 (1).attr() 方法 语法:$(selector).attr(name|prop ...
- HTML 学习笔记 JQuery(DOM 操作)
一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...
- JavaWeb学习笔记——jquery中的dom操作
jquery中的dom操作 废话不说:直接上例子: 1.添加节点-html页面 Append:向每个匹配的元素内部追加内容. <body> <ul id="city& ...
随机推荐
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- ASP.NET Core HTTP 管道中的那些事儿
前言 马上2016年就要过去了,时间可是真快啊. 上次写完 Identity 系列之后,反响还不错,所以本来打算写一个 ASP.NET Core 中间件系列的,但是中间遇到了很多事情.首先是 NPOI ...
- ASP.NET Core的路由[4]:来认识一下实现路由的RouterMiddleware中间件
虽然ASP.NET Core应用的路由是通过RouterMiddleware这个中间件来完成的,但是具体的路由解析功能都落在指定的Router对象上,不过我们依然有必要以代码实现的角度来介绍一下这个中 ...
- jQuery学习之路(7)- 用原生JavaScript实现jQuery的某些简单功能
▓▓▓▓▓▓ 大致介绍 学习了妙味,用原生的JavaScript实现jQuery中的某些部分功能 定义自己的函数库lQuery ▓▓▓▓▓▓ $()选择器的实现 jQuery是面向对象的,所以自己编写 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- 获取微软原版“Windows 10 推送器(GWX)” 卸载工具
背景: 随着Windows 10 免费更新的结束,针对之前提供推送通知的工具(以下简称GWX)来说使命已经结束,假设您还未将Windows 8.1 和Windows 7 更新到Windows 10 的 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- 用游标实现查询当前服务器所有数据库所有表的SQL
declare @name varchar(100) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Name FROM Master..SysDatabase ...
- 前端自动化构建工具gulp记录
一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...