jQuery使用之处理页面元素用法实例


Posted in Javascript onJanuary 19, 2015

本文实例讲述了jQuery使用之处理页面元素用法。分享给大家供大家参考。具体分析如下:

对于页面的元素,在DOM编程中可以通过各种查询、修改手段进行管理,非常麻烦。jQuery提供了一整套的方法来处理页面的元素。包括元素的内容、复制、移动和替换等。这里将介绍一些常用的内容。

1.直接获取、编辑内容。

在jQuery中,主要是通过html()和text()两个方法来获取和编辑页面的内容。其中html()相当于获取节点的innerHTML属性,添加参数html(text),则为设置innerHtml;而text()则用来获取元素的纯文本,text(content)为设置纯文本。

这两种方法有时配合着使用,text()通过用来过滤页面中的标记,而html(text)用来设置节点中的innerHtml。例如:

$(function() {

 var sString = $("p:first").text(); //获取纯文本

 $("p:last").html(sString);

});

利用text()的方法获取第一个P的文本,然后用html()方法赋给最后一个<p>。

text()和html()方法的巧用。

<script type="text/javascript">

$(function() {

 $("p").click(function() {

     var sHtmlStr = $(this).html(); //获取innerHTML

     $(this).text(sHtmlStr); //将代码做为纯文本传入

 });

});

</script>

<p><b>文本</b>段 落<em>示</em>例</p>

鼠标一次点击、二次点击、三次点击这些可以用在代码获取转移上。

2.移动和复制元素

在普通的DOM中,如果希望在某个元素后面添加一个元素,通常是使用父元素的appendChild()或者inserBefore()方法,很多时候需要反复需找节点的位置。十分麻烦,jQuery中提供了append()方法,可以直接为某个元素添加新的子元素。

<script type="text/javascript">

    $(function() {

 //直接添加HTML代码

 $("p:last").append("<b>直接添加</b>");

    });

</script>

<p>11<em title="huge, gigantic">22</em>...</p>

<p>33<em title="running">44</em>...</p>

除了直接添加html代码,append()方法还可以用来添加固定的节点,例如

$("p").append($("a"));

这个情况会有一些不同,倘若添加的<p>是唯一的一个元素,那么$("a")就会被移动到该元素的所有子元素的后面,而如果目标<p>,是多个元素,那么$("a")将会以复制的形式,在每个P中都添加一个子元素,而自身保持不变。例:使用append()方法复制和移动元素。
<script type="text/javascript">

    $(function() {

 $("p").append($("a:eq(0)")); //添加目标为多个<p>

 $("p:eq(1)").append($("a:eq(1)")); //添加目标是唯一的<p>
    })

</script>

<a href="#">链接1</a>

<a href="#">链接2</a>

<p>文字1</p>

<p>文字2</p>

以上代码中设置了两个超链接<a>用于append()调用。对于第1个超链接,添加目标$("p"),一共有两个<p>元素,对于第2个超链接,添加目标是唯一的<p>元素。

可以看到第一个超链接是以复制的形式添加的,第二个超链接则是以移动的方式添加的。

另外从上述可以看出,append()后面的<a>标记被运用了目标<p>的样式风格,同时也是保持了自身的样式风格。这是因为append()是将<a>作为<p>的子标记进行添加的,将<a>放到了<p>的所有子标记(文本)节点后面。

除了append()方法,jQuery还提供了appendTo(target)方法,用来将目标元素添加到指定目标的子元素。它的使用方法和运行结果与append()完全类似。

$(function() {

 $("img:eq(0)").appendTo($("p")); //添加目标为多个<p>

 $("img:eq(1)").appendTo($("p:eq(0)")); //添加目标是唯一的<p>

});

<img src="08.jpg"> <img src="09.jpg">

<hr>

<p><img src="10.jpg"></p>

<p><img src="10.jpg"></p>

<p><img src="10.jpg"></p>

对于第一幅照片,同事将其添加到3个p标记中,对于第二幅图片则把单独添加到1个P元素中,从执行结果可以看出,第一幅图片是以复制的形式添加到3个P元素中的,而第二幅图片是以移动的方式添加的。

与append()和appendTo()方式对应,JQ还提供了prepend()和prependTo()方法这两种方法是将元素添加到目标的所有子元素之前,也遵循:复制、移动的添加原则。

除了上述的4种方法之外Jq还提供了before()、insertBefore()、after()、和insertAfter(),用来将元素直接添加到某个节点之前或之后,而不是作为子元素插入。

其中before()与insertBefore()完全相同,after()和insertAfter()也是完全一样的,这里以after()为例

<script type="text/javascript">

    $(function() {

 $("p").after($("a:eq(0)")); //添加目标为多个<p>

 $("p:eq(1)").after($("a:eq(1)")); //添加目标是唯一的<p>
    });

</script>

<a href="#">链接1</a>

<a href="#">链接2</a>

<p>内容1</p>

<p>内容2</p>

以上代码运行结果,可以看到after()方法同样遵循单个目标移动,多个目标复制的原则,并且不再是作为子元素添加。而是紧贴在目标元素之后的兄弟元素。

3.删除元素。

在DOM编程中,要删除某个元素往往借助父元素的removeChild()方法,而jQuery提供了remove()方法,可以直击删除元素。

例如$("p").remove();是删除整个页面中的所有p元素标记。

remove()也接受参数。

<script type="text/javascript">

    $(function() {

 $("p").remove(":contains('1')");

 //$("p:contains('1')").remove();

    });

</script>

<a href="#">链接1</a>

<a href="#">链接2</a>

<p>内容1</p>

<p>内容2</p>

以上代码中remove()使用了过滤选择器,文本内容包含1的P元素被删除掉了。

虽然remove()可以接受参数,但是通常还是建议在选择器阶段就将要删除的对象确定,然后用remove()一次性删除。("p:contains('1')").remove();其效果是完全一样的,并且效果和其它代码的风格是统一的。

在DOM中,如果希望把某个元素的子元素全部删除,往往for循环的配合hasChildNodes()来判断,并用removeChildNode()逐一删除,Jquery提供了empty()方法直接删除所有的子元素。

<script type="text/javascript">

    $(function() {

    $("p").empty();    //删除p的所有子元素

    });

</script>

<a href="#">链接1</a>

<a href="#">链接2</a>

<p>内容1</p>

<p>内容2</p>

4.克隆元素。

第二节提到元素的复制和移动,但这取决于目标数的个数,很多时候开发者希望即使目标对象只要一个,同样能执行复制操作。

jQuery提供了clone()方法来完成这项任务。

<script type="text/javascript">

    $(function() {

 $("img:eq(0)").clone().appendTo($("p"));

 $("img:eq(1)").clone().appendTo($("p:eq(0)"));
});

</script>

<img src="08.jpg"> <img src="09.jpg">

<hr>

<p><img src="10.jpg"></p>

<p><img src="10.jpg"></p>

<p><img src="10.jpg"></p>

同样完成了上上节中appendTo()方法达到的结果。

另外clone()函数还接受布尔值对象作为参数,的那个参数为true时,除了克隆本身,它所携带的时间方法将一块被复制。

<script type="text/javascript">

$(function() {

 $("input[type=button]").click(function() {

     //克隆自己,并且克隆点击的行为

     $(this).clone(true).insertAfter(this);

 });

});

</script>

<input type="button" value="Clone Me">

以上代码在单击按钮时克隆按钮本身,同时克隆单击事件,克隆出来的按钮同样具备有克隆自己的功能。

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
Apr 27 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
JQuery球队选择实例
May 18 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
如何通过js实现图片预览功能【附实例代码】
Mar 30 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
webpack打包js的方法
Mar 12 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
js实现每日签到功能
Nov 29 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
Js on及addEventListener原理用法区别解析
Jul 11 Javascript
jQuery学习笔记之jQuery中的$
Jan 19 #Javascript
jQuery使用之设置元素样式用法实例
Jan 19 #Javascript
jQuery学习笔记之基础中的基础
Jan 19 #Javascript
jQuery 选择器详解
Jan 19 #Javascript
jQuery使用之标记元素属性用法实例
Jan 19 #Javascript
jQuery应用之jQuery链用法实例
Jan 19 #Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 #Javascript
You might like
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
python 判断一个进程是否存在
2009/04/09 Python
python 统计代码行数简单实例
2017/05/04 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
Python 如何查找特定类型文件
2020/08/17 Python
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
药学专业个人自我评价
2013/11/11 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
企业业务员岗位职责
2014/03/14 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
关于做家务的心得体会
2016/01/23 职场文书
《小小的船》教学反思
2016/02/18 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL