接着上一节的将,这一节从复制节点讲起

复制节点

继续使用之前的例子 如果单击<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)的更多相关文章

  1. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  2. jQuery学习笔记(DOM操作)

    DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM. 1. DOM Core DOM Core并不专属于JavaScript,任何一种支持DOM的 ...

  3. jQuery DOM操作之结点转移复制

    jQuery DOM操作之结点转移复制 $('div').append($('p'))这样即可把p标签移动到div标签里 $('div').append( $('p').html() )是把p标签里的 ...

  4. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  5. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  6. tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)

    tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...

  7. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  8. JQuery DOM操作(属性操作/样式操作/文档过滤)

    jQuery——入门(三)JQuery DOM操作(属性操作/样式操作/文档过滤) 一.DOM属性操作 1.属性 (1).attr() 方法 语法:$(selector).attr(name|prop ...

  9. HTML 学习笔记 JQuery(DOM 操作)

    一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...

  10. JavaWeb学习笔记——jquery中的dom操作

     jquery中的dom操作 废话不说:直接上例子: 1.添加节点-html页面 Append:向每个匹配的元素内部追加内容. <body> <ul id="city& ...

随机推荐

  1. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  2. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  3. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. wordpress多站点配置

    wordpress作为全球第一的个人博客搭建平台一直在国内外有着较高的人气,从3.0版本开始就已经支持多站点的搭建.该功能可以让子站点运行主站点的程序,不需要再每个站点分别存放网站程序.最近更新的4. ...

  5. CSS HTML元素布局及Display属性

    本篇文章主要介绍HTML的内联元素.块级元素的分类与布局,以及dispaly属性对布局的影响. 目录 1. HTML 元素分类:介绍内联元素.块级元素的分类. 2. HTML 元素布局:介绍内联元素. ...

  6. 邮件中嵌入html中要注意的样式

    工作中常会有需求向用户发送邮件,需要前端工程师来制作html格式的邮件,但是由于邮件客户端对样式的支持有限,要兼容很多种浏览器需要注意很多原则: 1.邮件使用table+css布局 2.邮件主要部分在 ...

  7. eclipse如何添加Memory Analyzer

    ①启动Eclipse,并打开"Install New software..."对话框: ②点击Add,如图: ③点击OK,最后一直点next,完成

  8. 常用 meta 整理

    <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 --> <meta name="HandheldFriendly" con ...

  9. PC虚拟现实应用的性能分析与优化:从CPU角度切入

    如今,虚拟现实 (VR) 技术正日益受到欢迎,这主要得益于遵循摩尔定律的技术进步让这一全新体验在技术上成为可能.尽管虚拟现实能给用户带来身临其境般的超凡体验,但相比传统应用,其具有双目渲染.低延迟.高 ...

  10. Linux系统中用DNW向ARM开发板下载程序

    在Linux下通过dnw来给开发板发送程序.包括驱动程序代码:secbulk.c,应用程序代码:dnw.c.只能运行在32位系统上,在64位系统上提示错误:DNW download Data size ...