`
webdev2014
  • 浏览: 680675 次
文章分类
社区版块
存档分类
最新评论

jQuery学习第四课(jquery中的DOM操作)

 
阅读更多


jqueryDOM操作

1.查找节点(略,前面课中已介绍)

2.创建节点

3.插入节点

4.包裹节点

5.删除节点

6.复制节点

7.替换节点

8.遍历节点(略,前面课中已介绍)

9.操作DOM节点属性

10.操作样式

11.设置和获取节点内的html和文本


创建节点



a.$()来创建节点

b.用字符串来创建节点

<script>
/*var newElement = $('<div>div标签</div>');
$('body').append(newElement);*/

/*var newElement = '<div>我是用字符串方法创建的标签</div>';
$('body').append(newElement);*/
</script>


插入节点

A、内部插入


a. append()向每个匹配元素尾部插入DOM,匹配元素在前

b. appendTo()向每个匹配元素尾部插入DOM,匹配元素在后

c. prepend()向每个匹配元素头部插入DOM,匹配元素在前

d. prependTo()向每个匹配元素头部插入DOM,匹配元素在后

<script>
var strong = $('<strong>我是被插入的新标签</strong>');
// $('p').append(strong);
// strong.appendTo($('p'));
//
// $('p').prepend(strong);
// strong.prependTo($('p'));
//
// $('p').after(strong);
// strong.insertAfter($('p'));
// $('p').before(strong);
// strong.insertBefore($('p'));

</script>

B、外部插入

a. after()在匹配元素之后插入DOM,匹配元素在前

b. insertAfter()在匹配元素之后插入DOM,匹配元素在后

c. before()在匹配元素之前插入DOM,匹配元素在前

d. insertBefore()在匹配元素之前插入DOM,匹配元素在后


包裹节点

a. wrap()将所有匹配元素单独包裹

b. wrapAll()将所有匹配元素用一个元素包裹

c. wrapInner()将所有匹配的元素的子内容用其它标签包裹

<body>
<p>我是第一个P标签</p>
<p>我是第二个P标签</p>
<script>
// $('p').wrap('<div></div>');
// $('p').wrapAll('<div></div>');

// $('p').wrapInner('<div>11111</div>');
</script>
</body>


删除节点

a.remove()删除节点

b.empyt()清空节点

c.unwrap()删除元素的父元素1.4+

d.detach()删除节点,但保留jquery对象

<body>
<p>我是P标签</p>
<span>我是span标签</span>
<div><strong>我是div标签</strong>1111111</div>
<em>我是em标签</em>

<script>
//
$('p').remove();
// $('div').empty();
// $('strong').unwrap();
</script>
</body>


复制节点

a. clone(bool)克隆节点 //参数默认为false,即只克隆节点而不克隆节点的事件

<body>
<a href="#">点击</a>

<script>

var newA = $('a').clone(true);
$('body').append(newA);

$('a').click(function(){
alert(1111);
});

</script>
</body>


替换节点

a. replaceWidth()将所有匹配的元素替换成指定的HTMLDOM元素

b. replaceAll()用指定的元素替换掉所有选择到匹配到的元素

<body>
<p>我是P标签</p>
<script>
//alert($('p').html())
// $('p').replaceWith('<strong>我是strong标签</strong>');
$('<strong>我是strong标签</strong>').replaceAll($('p'));
</script>
</body>


操作DOM节点属性

a.attr(key,value)获取添加属性值

b.removeAttr()删除属性值

c.prop()attr()

d. removeProp()removeAttr()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>demo7</title>
<script src="jquery.js"></script>
<style>
.a{background: red}
.b{background: #abcdef}
.aa{color: #fff;}
</style>
</head>
<body>
<p title="js" class="a aa">1111111</p>
<script>
// $('p').attr('title','livescript');
// $('p').attr('class','b');
//$('p').removeAttr('class');
// $('p').removeAttr('class'=='aa');
</script>
</body>
</html>


操作样式

addClass()添加样式

removeClass()移除样式

toggleClass()切换样式

hasClass()判断是否有样式

css()设置匹配元素的css样式(行内样式)

height()获取高度

innerHeight()获取padding的高度,不包括border

outerHeight(bool)参数为true时获取内外边距和border的高度

width()获取宽度

innerWidth()获取包括padding的宽度,不包括border

outerWidth()参数为true时获取内外边距和border的宽度

offset()获取元素的位置

offsetParent()离匹配元素最近的有position属性的元素

position()相对于offsetParent()的坐标

scrollTop()纵向滚动条的位置

scrollLeft()横向滚动条的位置

<style type="text/css">
.bgred{background: red;}
.white{color:#fff;}
</style>
</head>
<body>
<p>我是P标签</p>
<script>
// $('p').addClass('bgred white');
// $('p').removeClass('white bgred');
//
/*$('p').click(function(){
$(this).toggleClass('bgred white');
});*/
//$(this).hasClass('bgred')返回的一个布尔值true/false
$('p').click(function(){
if($(this).hasClass('bgred')){
$(this).removeClass('bgred');
}else{
$(this).addClass('bgred');
}
});
</script>
</body>

--------------------------------------------css()------------------------------------------------------

<body>
<p>11111111</p>
<script>
/*$('p').css('background','red').css('color','white').css('border','10px solid #abcdef');*/
$('p').css({
'backgroundColor':'red',
'color':'white',
'border':'10px solid #abcdef'
});
//建议大家把css属性名用引号引起来
</script>
</body>

-------------height()---innerHight()------outerHeight()---------------------------

<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>demo10</title>
<script src="jquery.js"></script>
<style type="text/css">
p{height: 30px;border: 10px solid red;padding: 10px;margin:10px;}
</style>
</head>
<body>
<p>1111111111</p>
<script>
//alert($('p').height());
//innerHight()方法获得到的高度不把border和margin计算进去,但是会把padding值计算进去
//outerHeight()方法如果参数不写,为默认值false,不会把margin值计算进去,如果参数为true,会把border,margin,padding都计算进去
alert('我是outerHeight获得到的高度:'+$('p').outerHeight(true));
alert('我是innerHeight获得到的高度:'+$('p').innerHeight());
</script>
</body>

-----------------offset()------position()----------------------------------------

offsetParent()在前面课中讲过

<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>demo1</title>
<style type="text/css">
*{margin: 0;}
div{
position: relative;
left: 20px;
top: 20px;
width: 200px;
height: 200px;
background: red;
}
p{
position: absolute;
left: 100px;
top: 50px;
width: 50px;
height: 50px;
background: yellow;
}
</style>
<script src="jquery.js"></script>
</head>
<body>
<div>divdivdiv
<p>ppppp</p>
</div>
<script>
/*var a = $('p').offset();
alert(a.left);
alert(a.top);*/

var a = $('p').position();
var b = $('p').offset();
alert('position方法获得到的值'+a.left);
alert('offset方法获得到的值'+b.left);
</script>
</body>

------------------------scrollTop()---------------------------------------------

<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>demo12</title>
<script src="jquery.js"></script>
<style>
button{
position: fixed;
top: 50px;
}
</style>
</head>
<body style="height:8000px">
<button>弹出滚动条离顶部的距离</button>
<script>
$('button').click(function(){
alert($(window).scrollTop());
});
</script>
</body>


设置和获取节点内的html和文本

a. text()获取匹配元素的文本节点

b. html()获取匹配元素的dom节点或文本节点

<body>
<p>11<strong style="background:red">111</strong>11</p>
<script>
// text()方法如果没有参数,会获得到匹配元素的文本节点,如果有参数,会修改匹配元素的文本节点
// alert($('p').text());
// $('p').text('2222222');
// 如果匹配标签内有子元素,用html()才可以获得到匹配元素里面的真实内容
alert($('p').html());
$('p').html('22222<span style="background:#f90">22222</span>22222')
</script>
</body>


实例

a.查看,修改,删除

b.滚动公告

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>查看修改删除</title>
<script src="jquery.js"></script>
<style>
#table{border: 1px solid #abcdef;border-collapse: collapse;width: 600px;}
tr{height: 30px;}
th{border: 1px solid #abcdef;}
td{border: 1px solid #abcdef;text-align: center;}
td a{margin-right: 5px;color: #f00;}

.popDiv{
width: 500px;
padding: 10px;
border: 1px solid red;
position: absolute;
left: 50%;
margin-left: -250px;
top: 100px;
background: #fff;
display: none;
z-index: 4;
}
.popDiv p{
border-bottom: 1px solid red;
}
</style>
<script src="jquery.js"></script>
</head>
<body>

<table id="table">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>职位</th>
<th>工资</th>
<th>操作</th>
</tr>

<tr>
<td>张三</td>
<td>23</td>
<td>资深前端工程师</td>
<td>12000</td>
<td><a href="#" class="view">查看</a><a href="#" class="del">删除</a><a href="#">修改</a></td>
</tr>

<tr>
<td>李四</td>
<td>28</td>
<td>资深java程序员</td>
<td>12000</td>
<td><a href="#" class="view">查看</a><a href="#" class="del">删除</a><a href="#">修改</a></td>
</tr>

<tr>
<td>王五</td>
<td>30</td>
<td>项目经理</td>
<td>10000+提成</td>
<td><a href="#" class="view">查看</a><a href="#" class="del">删除</a><a href="#">修改</a></td>
</tr>

</table>

<div class="popDiv">
<p><strong>姓名:</strong><span></span></p>
<p><strong>年龄:</strong><span></span></p>
<p><strong>职位:</strong><span></span></p>
<p><strong>工资:</strong><span></span></p>
<a href="#" class="close">关闭</a>
</div>

<script>

//查看
$('.view').click(function(){

var maskHeight = $(document).height();
var maskWidth = $(document).width();
//alert(maskWidth)
//添加遮照层
$('<div class="mask"></div>').appendTo($('body'));
$('div.mask').css({
'opacity':0.4,
'background':'#000',
'position':'absolute',
'left':0,
'top':0,
'height':maskHeight,
'width':maskWidth,
'z-index':2


});


var arr = [];
$(this).parent().siblings().each(function(){
arr.push($(this).text());
});
//alert(arr);
$('.popDiv').show().children().each(function(i){
$(this).children('span').text(arr[i]);
});


//关闭
$('.close').click(function(){
$(this).parent().hide();
$('.mask').remove();
});
});

//删除
$('a.del').click(function(){
$(this).parents('tr').remove();
});
</script>

</body>
</html>

------------------------滚动公告-------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>滚动公告</title>
<style>
*{padding: 0;margin: 0;}
body{margin: 50px;}
ul{list-style-type: none;}
li{height: 30px;line-height: 30px;}
</style>
<script src="jquery.js"></script>
</head>
<body>
<ul>
<li>我是第1条公告。。。。。</li>
<li>我是第2条公告。。。。。</li>
<li>我是第3条公告。。。。。</li>
<li>我是第4条公告。。。。。</li>
<li>我是第5条公告。。。。。</li>
<li>我是第6条公告。。。。。</li>
<li>我是第7条公告。。。。。</li>
<li>我是第8条公告。。。。。</li>
<li>我是第9条公告。。。。。</li>
<li>我是第10条公告。。。。。</li>
</ul>
<script>
setInterval(function(){

var newLi = $('ul>:first').clone(true);
$('ul').append(newLi);
$('ul>:first').remove();

},2000);

</script>
</body>
</html>



分享到:
评论

相关推荐

    jQuery jQuery第四版PDF

    本书前6章以通俗易懂的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更加...

    【练习向】jQuery基础教程第四版章节源码——Book05_jQuery_操作DOM

    【练习向】jQuery基础教程第四版章节源码——Book05_jQuery_操作DOM

    jQuery动画特效---精通JavaScript+jQuery

    第4课 - CSS进阶 - [精通JavaScript+jQuery] 第5课 - DOM模型 - [精通JavaScript+jQuery] JavaScript开发进阶 第6课 - JavaScript事件 - [精通JavaScript+jQuery] 第7课 - 表格与表单 - [精通JavaScript+jQuery]...

    jQuery学习笔记精心整理

    1. jQuery是第三方开发的执行DOM操作的极简化的函数库 (1). 第三方: 除了浏览器自带的函数和程序员自己编写的函数外,由第三方组织或个人编写的函数或对象——都要先下载才能用(官网: www.jquery.com) (2). 执行...

    jQuery开发技术详解

    第4章 工欲善其事,必先利其器——开发工具 第5章 jQuery快速上手 第6章 使用选择器获得要操作的元素 第7章 操作得到的元素 第8章 使用jQuery进行DOM操作 第9章 jQuery中的事件处理 第10章 jQuery中的动画与效果 第...

    Jquery学习笔记分享

    第1章. JQuery概述 2 1. Jquery基本作用 2 2. 优点 2 3. 引入JQuery 2 4. 代码风格 2 5. 其他 JavaScript 库 3 6. 多个库之间的冲突 3 7. jQuery对象和DOM对象 3 第2章. jQuery选择器 4 ...第4章. jQuery的事件 12

    Jquery学习手册

    jquery学习笔记,很全面的介绍jquery的用法。 存在的html片段)包装成jQuery对象。 $()方法里面支持的语法又包括3大类,分别是表达式(包括类表达式.,id表达式#,元素表达式等)、符号(包括后代符号space,next符号+...

    jQuery基础教程(第四版),完整高清版

    本书前6章以通俗易懂的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更加...

    jQuery基础教程(第四版)

    本书前6章以通俗易懂的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更加...

    jQuery基础教程--第四版(2013年出版)

    的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章 和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更 加深入地探讨了...

    JQuery基础教程(第4版)

    的方式讲解了jQuery 的核心组件 包括jQuery 的选择符 事件 动画 DOM 操作 Ajax 支持等 第7 章 , 、 、 、 、 。 和第8 章介绍了jQuery UI jQuery Mobile 及利用jQuery 强大的扩展能力开发自定义插件 随后的几章...

    jQuery基础教程(第4版)李松峰(译) 中文 非扫描版 高清带书签

    本书前6章以通俗易懂的方式讲解了jQuery的核心组件,包括jQuery的选择符、事件、动画、DOM操作、Ajax支持等。第7章和第8章介绍了jQuery UI、jQuery Mobile及利用jQuery强大的扩展能力开发自定义插件。随后的几章更加...

    从零开始学习JQuery

    从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) AJAX快餐 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuery ...

    锋利的jQuery_高清_书签.part2

    第4章 jQuery中的事件和动画 4.1 jQuery中的事件 4.1.1 加载DOM 4.1.2 事件绑定 4.1.3 合成事件 4.1.4 事件冒泡 4.1.5 事件对象的属性 4.1.6 移除事件 4.1.7 模拟操作 …… 第5章 jQuery对表单、表格的操作及更多...

    jquerydemo

    1. 第一个 jQuery 程序 2. jQuery 对象和 DOM 对象 3. 基本选择器 4. 层次选择器 5. 基本过滤选择器 6. 内容过滤选择器 7. 可见性过滤选择器 8. 属性过滤选择器 9. 子元素过滤选择器 10. 表单元素过滤选择器 11. 小...

    jQuery基础教程 第四版

    本书前 6 章以通俗易懂 的方式讲解了 jQuery 的核心组件,包括 jQuery 的选择符、事件、动画、DOM 操作、Ajax 支持等。第 7 章 和第 8 章介绍了 jQuery UI、jQuery Mobile 及利用 jQuery 强大的扩展能力开发自定义...

    jQuery权威指南-源代码

    第4章 jQuery中的事件与应用/82 4.1 事件机制/83 4.2 页面载入事件/85 4.2.1 ready()方法的工作原理/85 4.2.2 ready()方法的几种相同写法/86 4.3 绑定事件/86 4.4 切换事件/90 4.4.1 hover()方法/90 4.4.2 ...

    jQuery基础教程(第四版)

    第4章介绍通过jQuery实现动画的技术,我们将学会隐藏、显示和移动页面元素,获得赏心悦目的效果。 2 前 言 第5章讲述如何通过命令改变页面。这一章讲述的是动态修改HTML文档结构及其内容的技术。 第6章讨论通过...

Global site tag (gtag.js) - Google Analytics