• 获取和设置元素的信息
    有很多种方式可以改变现有的元素,最常见的是改变HTML内容或者元素的属性。JQuery提供了简单的夸浏览器的方法来帮助你实现元素信息的获取和设置。
    • .html():获取或设置HTML的内容。
    • .text():获取或设置文本内容。
    • .attr():获取或设置指定属性的值。
    • .width():获取或设置选择器中第一个元素的宽度,值为整数,单位为像素点。
    • .height():获取或设置选择器中第一个元素的高度,值为整数,单位为像素点。
    • .position():获取选择器中第一个元素对象的位置信息,相对于其第一个定位的先祖,这是一个只读方法。
    • .val():获取或设置表单元素的值。
    需要注意的是,这样的改变可能会影响所有被选择的元素,如果只想改变其中的一个元素,那么你需要确认选择器是否只指定了你想要改变的那个元素。
// 改变一个元素内的HTML
$( "#myDiv p:first" ).html( "New <strong>first</strong> paragraph!" );
  • 移动元素
    虽然有各种各样的方法可以移动DOM中的元素,但一般来说主要有两种方式。
    • 相对于其他元素来放置被选元素。
    • 相对于被选元素来放置其他元素。
    举例说明,JQuery提供了.insertAfter()和.after()两个方法。.insertAfter()方法将被选元素放置在作为方法参数的那个元素的后面。而.after()方法将作为方法参数的那个元素放置在被选元素的后面。还有类似的方法对,.insertBefore()和.before(), .appendTo()和 .append(),.prependTo()和.prepend()。
    使用哪类方法取决于被选中的元素是哪个,以及是否需要存储被添加到页面的元素的引用。如果你需要存储这个引用,那么你应该采取第一种方式,相对于其他元素来放置被选元素,它返回的元素是你放置的那个元素。
// 使用不同的方法移动元素
// 第一种方式
var $li = $( "#myList li:first" ).appendTo( "#myList" );
// 第二种方式
$( "#myList" ).append( $( "#myList li:first" ) );
  • 克隆元素
    除了需要移动元素外,有时候拷贝元素也是需要的,拷贝元素我们可以使用.clone()方法。
// 拷贝列表的第一个项到列表的末尾
$( "#myList li:first" ).clone().appendTo( "#myList" );

如果你需要拷贝相关的数据和事件,那么你需要传递true作为参数给.clone()方法。

  • 删除元素
    删除元素有两种方式,.remove()和.detach()。
    如果你想把元素从页面上永久的移除,那么使用.remove()方法,而且这个方法的返回值是被删除元素的选择器,这些被删除的元素将不再有相关的数据和事件。
    如果你需要数据和事件被保留,那么使用.detach()方法,这个方法返回的也是一个选择器,但是这个选择器保留了相关的数据和事件,删除之后你可以恢复这个被删除的选择器回到页面上去。
    如果你只想删除元素的内容,你可以使用.empty()方法来处理元素的内容。
  • 创建新元素
    JQuery提供了一个简单又优雅的方式来创建新元素,那就是使用$()方法。
// 通过HTML字符串创建一个新元素。
$( "<p>This is a new paragraph</p>" );
$( "<li class=\"new\">new list item</li>" );
// 创建带有属性的新元素。
$( "<a/>", {
html: "This is a <strong>new</strong> link",
"class": "new",
href: "foo.html"
});
    需要注意的是属性对象在方法的第二个参数处,属性名称可以使用加引号的字符串也可以不加引号,一般来说属性的名称是不加引号的。
    当我们创建一个新的元素,它不会立即被添加到页面上,这有一些方法可以当元素被创建的时候将元素添加到页面上去。
var $myNewElement = $( "<p>New element</p>" );
$myNewElement.appendTo( "#content" );
$myNewElement.insertAfter( "ul:last" ); //这将$myNewElement从#content中移除
$( "ul" ).last().after( $myNewElement.clone() ); // 克隆一个新的元素,这样我们就有2个了

被创建的元素并不需要保存在变量中,你可以直接在$()之后调用方法添加元素到页面上。但是大部分情况下你是需要这个被添加元素的引用的。

// 这样创建元素你将无法获取这个元素的引用
$( "ul" ).append( "<li>list item</li>" );

这样添加新元素的语法是非常简单的,所以人们经常忘记反复这样的操作会对性能产生巨大的负面影响。如果你添加一些元素到相同的容器,你可以用一个字符串连接所有的HTML,然后一次添加到容器上,而不是一个个元素进行添加。

var myItems = [];
var $myList = $( "#myList" );
for ( var i = 0; i < 100; i++ ) {
myItems.push( "<li>item " + i + "</li>" );
}
$myList.append( myItems.join( "" ) );
  • 操作属性
    JQuery的属性操作能力是很强的,除了基本的属性改变外,.attr()方法也允许更为复杂的操作。它可以设置一个明确的值或者设置一个函数的返回值,当使用函数时,函数有两个参数,第一个参数是被改变属性的元素的序号,第二个参数是被改变属性原本的值。
// 操作一个属性
$( "#myDiv a:first" ).attr( "href", "newDestination.html" );
// 操作多个属性
$( "#myDiv a:first" ).attr({
href: "newDestination.html",
rel: "super-special"
});
// 使用一个函数去确定一个属性的新值
$( "#myDiv a:first" ).attr({
rel: "super-special",
href: function( idx, href ) {
return "/new/" + href;
}
});
$( "#myDiv a:first" ).attr( "href", function( idx, href ) {
return "/new/" + href;
});

JQuery官方学习资料(译):操作元素的更多相关文章

  1. JQuery官方学习资料(译):选择元素

    选择元素     JQuery最基本的概念是“选择一些元素并让它们做些什么”.JQuery支持大部分的CSS3的选择器,以及一些非标准的选择器. 通过ID选择元素 $( "#myId&quo ...

  2. JQuery官方学习资料(译):JQuery对象

        每当创建一个新的元素(或者选择一个已经存在的元素)时,JQuery将返回一个元素的集合.大部分的开发人员新接触JQuery的时候,都把这个集合当做数组.这个集合中的DOM元素有从零开始的索引, ...

  3. JQuery官方学习资料(译):使用JQuery的.index()方法

        .index()是一个JQuery对象方法,一般用于搜索JQuery对象上一个给定的元素.该方法有四种不同的函数签名,接下来将讲解这四种函数签名的具体用法. 无参数的.index() < ...

  4. JQuery官方学习资料(译):遍历JQuery对象和非JQuery对象

        JQuery提供了一个对象遍历的Utility方法$.each()和一个JQuery集合遍历方法.each(). $.each()     $.each()是一个通用的方法用来遍历对象和数组, ...

  5. JQuery官方学习资料(译):避免与其他库的冲突

    避免与其他库的冲突     JQuery库和它所有的插件都是包含在jQuery命名空间下的,作为一般规则,全局对象被存储在jQuery的命名空间内,所以你不会得到jQuery和任何其他库之间的冲突(例 ...

  6. JQuery官方学习资料(译):类型

    类型     JavaScript提供了多个内置数据类型.除了这些,这份文档还将介绍一些虚拟类型,例如选择器.伪类.事件等. String 在JavaScript中字符串是一个不可变的对象,它包含无. ...

  7. JQuery官方学习资料(译):Utility方法

        JQuery提供了一些utility方法在$命名空间里,这些方法对完成常规的编程任务非常有帮助. $.trim()     删除前后部的空白内容. // 返回 "lots of ex ...

  8. JQuery官方学习资料(译):Data方法

        你可能经常会想需要通过元素来存储一些数据.在JavaScript中你可能需要给元素添加属性来实现这样的功能,但是在某些浏览器中,你可能还需要处理因此造成的内存泄露问题.JQuery提供了一个简 ...

  9. JQuery官方学习资料(译):CSS

        JQuery提供了一个处理方法,可以获取或设置元素的CSS属性. // 获取 CSS 属性 $( "h1" ).css( "fontSize" ); / ...

随机推荐

  1. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析

    [.NET Core项目实战-统一认证平台]开篇及目录索引 从本文开始,我们正式进入项目研发阶段,首先我们分析下统一认证平台应该具备哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架 ...

  2. 【.NET Core项目实战-统一认证平台】第六章 网关篇-自定义客户端授权

    [.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我们介绍了网关使用Redis进行缓存,并介绍了如何进行缓存实现,缓存信息清理接口的使用.本篇我们将介绍如何实现网关自定义客户端授权, ...

  3. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)【转载】

    转载自:http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  4. 吴恩达机器学习笔记7-梯度下降III(Gradient descent intuition) --梯度下降的线性回归

    梯度下降算法和线性回归算法比较如图: 对我们之前的线性回归问题运用梯度下降法,关键在于求出代价函数的导数,即: 我们刚刚使用的算法,有时也称为批量梯度下降.实际上,在机器学习中,通常不太会给算法起名字 ...

  5. 微信小程序合法域名配置-不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书

    微信小程序合法域名配置-不校验合法域名.web-view(业务域名).TLS 版本以及 HTTPS 证书 很多教程说按照以上方式调用即可.但是当我们在程序中实际调用以上程序时,就会报错, http:/ ...

  6. Spring Boot 返回 XML 数据,一分钟搞定!

    Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击查看之前分享的 Spring Boot 返回 JSON 数据,一分钟搞定! ...

  7. Redis主从同步原理-PSYNC【转】

    Reids复制数据主要有2种场景: 1. 从服务器从来第一次和当前主服务器连接,即初次复制 2. 从服务器断线后重新和之前连接的主服务器恢复连接,即断线后重复制   对于初次复制来说使用SYNC命令进 ...

  8. IdentityServer4(8)- 使用密码认证方式控制API访问(资源所有者密码授权模式)

    一.前言 本文已经更新到 .NET Core 2.2 OAuth 2.0 资源所有者密码模式允许客户端向令牌服务发送用户名和密码,并获取代表该用户的访问令牌. 除了通过无法浏览器进行交互的应用程序之外 ...

  9. mysql 开发进阶篇系列 21 磁盘I/O问题(RAID)

    一.概述 作为应用系统的持久化层,不管数据库采取了什么样的Cache机制,数据库最终总是要将数据储存到可以长久保存的I/O设备磁盘上.但磁盘的存取速度显然要比cpu,ram的速度慢很多.因此,对于比较 ...

  10. Android布局:宽度适应的横向跟随,防止挤掉重要视图

    不知道这样的布局该怎么描述,标题也是乱取的..直接上图吧 最近遇到了这样要求的布局: 1.上图中的“标题”长度不定,“状态”标签可能有多个并紧跟在标题右边,“属性”一直居右显示: 2.当“标题”过长, ...