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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值