第四章DOM
1:获取值的方法
html()
text()
val() 既可以获取input里面的值/也可以设置值
* * 如果是下拉菜单 、单选、多选的情况下 val([''])方法 还可以将他们设置成默认选中
prop('checked',true) 专属input默认选中方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
苹果:<input type="checkbox" name="" id="" value="苹果"/>
香蕉:<input type="checkbox" name="" id="" value="" />
西瓜:<input type="checkbox" name="" id="" value="" />
</body>
<script type="text/javascript">
// $('input').prop('checked',true)
// $('input').eq(0).val(['苹果'])
</script>
</html>
2:操作属性的方法
attr() 获取/设置元素属性的方法
** attr()还可以设置多个属性 设置多个属性采用对象的模式 attr({'k1':'v1','k2':'v2','k3':'v3'})
removeAttr() 移除属性方法
addClass() 只能向元素添加class值
removeClass() 删除属性方法
toggleClass() 添加样式切换方法 (方法中不加 .)
hasClass()/is() 检查元素是否包含指定的类 (方法中不加 .)
<body>
<ul>
<li class="a" id="b">000000000000</li>
<li>111111111111</li>
<li>222222222222</li>
<li>333333333333</li>
<li>444444444444</li>
<li>555555555555</li>
<li>666666666666</li>
</ul>
</body>
<script type="text/javascript">
// alert($('li').eq(0).attr('id'))
// $('li').eq(0).attr('id','box')
// $('li').eq(1).attr({'class':'box1','id':'box2','name':'box3','style':'color:red'})
// $('li').eq(0).removeAttr('class')
// $('li').eq(3).addClass('box');
// $('li').eq(0).removeClass();
</script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.bl{
width: 100px;
height: 100px;
background: #000;
}
.red{
width: 100px;
height: 100px;
background: red;
}
.blue{
width: 100px;
height: 100px;
background: blue;
}
</style>
<script src="../js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="bl"></div>
</body>
<script type="text/javascript">
// alert($('div').hasClass('bl'))
$('div').click(function(){
if($(this).hasClass('red')){
$(this).toggleClass('blue')
}else{
$(this).toggleClass('red')
}
})
</script>
</html>
3:遍历方法(each) :节点内部插入
var box=$('<div id="box">你好</div>') 创建一个标签
append() 插入一个标签
appendTo() 插入到标签里面的后面
prepend('插入一对标签') 插入到标签里面的前面
prependTo() 插入到标签里面的后面
each遍历
<script type="text/javascript">
// $(function(){
// $('li').each(function(){
// alert($(this).index())
// })
// })
$(document).ready(function(){
$('li').each(function(){
alert($(this).index())
})
})
</script>
</head>
<body>
<ul>
<li>000000000000</li>
<li>111111111111</li>
<li>222222222222</li>
<li>333333333333</li>
<li>444444444444</li>
<li>555555555555</li>
<li>666666666666</li>
</ul>
</body>
内部插入
<body>
<div>大哥</div>
<p>大姐</p>
</body>
<script type="text/javascript">
var h=$('<h1>小哥哥哥</h1>');
$('body').append(h)
// $('div').appendTo($('p'))
// $('div').appendTo(h)
// $('div').prepend('<p>小姐姐</p>')
// $('div').prependTo('p')
// $('div').append(function(i,html){
// return '<h1>好傻啊</h1>'+i+html;
// //i 是下标
// //html 是被插入标签的内容
// })
</script>
5:节点外部插入
after() 向指定元素后插入一个同级标签
before() 向指定元素前插入一个同级标签
insertAfter()将指定元素移入指定元素后面
insertBefore()将指定元素移入指定元素后面
<body>
<div>真冷!!!</div>
<em>卡卡卡</em>
<p>呵呵哈哈哈</p>
</body>
<script type="text/javascript">
// $('div').after('<h1>太冷了</h1>')
// $('div').before('<span>美丽动人</span>')
// $('div').after($('em'))
// $('div').insertBefore('<p>哈哈哈哈</p>')//这个写法不行
// $('div').insertBefore($('em'))//这个写法不行
// $('div').insertAfter('em')
// $('p').insertBefore('div')
</script>
6:包裹节点方法
wrap() 向指定元素包裹一层代码
wrap(element) 向指定标签包裹指定标签
unwrap() 移除指定元素上一层标签
wrapAll() 包裹所有的指定元素上
wrap()和wrapAll()的区别是:
wrap()方法是把指定标签看成独立体分别包裹
wrapAll()方法是把指定标签包裹成一个独立体
<body>
<div>
<p>
<span>啦啦啦啦</span>
</p>
</div>
<h1></h1>
</body>
<script type="text/javascript">
// $('span').wrap('<em></em>')
// $('span').wrap('<em>吞吞吐吐</em>')
// $('span').wrap('<em><span></span></em>')
// $('span').wrap($('h1'))
// $('span').unwrap().unwrap();
</script>
<body>
<em>哈哈哈哈1</em>
<span>呵呵呵</span>
<em>哈哈哈哈2</em>
</body>
<script type="text/javascript">
// $('em').wrap('<p></p>')
$('em').wrapAll('<p></p>')
</script>
7:操作节点方法
clone(true/false) 克隆节点
** 如果克隆里面没有true 那么他是不会克隆事件行为的,有true的话就会克隆事件行为
eg:
<body>
<button>点击</button>
</body>
<script type="text/javascript">
$('button').click(function(){
alert('冷啊')
})
var btn=$('button').clone(true);
$('body').append(btn)
</script>
remove() 删除节点
detach() 删除节点
empty() 删除内容保留标签
replaceWith() 替换节点
replaceAll() 替换节点(先创建再删除)
<body>
<div>
<p>
<button>点击</button>
</p>
</div>
<em class="aa"></em>
</body>
<script type="text/javascript">
// $('p').detach();
// $('button').empty();
// $('p').replaceWith('<h1></h1>')
// $('button').replaceWith($('em'))
// $('button').replaceAll('<span>7777777</span>')//这个写法不行
// $('<span>7777777</span>').replaceAll('button')
// $('<span>7777777</span>').replaceAll('.aa')
</script>
8:其他css方法
width() 获取/设置元素的宽度
height() 获取/设置元素的高度
innerWidth() 获取元素的宽,包含内边距(padding)
innerHeight() 获取元素的高,包含内边距(padding)
outerWidth() 获取元素的宽,包含内边距(padding)+边框(border)
**outerWidth(true) 获取元素的宽,包含内边距(padding)+边框(border)+外边距(margin)
outerHeight() 获取元素的高,包含内边距(padding)+边框(border)
<style type="text/css">
div{
width: 100px;
height: 100px;
padding: 50px 100px;
margin: 50px 100px;
background: red;
border: 1px solid yellow;
}
</style>
<script src="../js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div></div>
</body>
<script type="text/javascript">
// alert($('div').width())
// alert($('div').height())
// alert($('div').innerWidth())
// alert($('div').innerHeight())
// alert($('div').outerWidth())
// alert($('div').outerWidth(true))
// alert($('div').outerHeight(true))
</script>
9:元素偏移方法
offset() 元素相对可视窗口的偏移位置
position() 元素相对父元素的偏移位置
scrollTop(val) 获取/设置垂直滚动条的值
scrollLeft(val) 获取/设置横滚动条的值
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
div{
width:200px;
height: 200px;
background: red;
position:relative;
margin: 50px 100px;
}
span{
display: block;
position: absolute;
top:50px;
left:50px;
width: 130px;
height: 130px;
border: 1px solid yellow;
}
</style>
<script src="../js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div>
<span>哈哈</span>
</div>
</body>
<script type="text/javascript">
// alert($('div').offset())//[object Object]
// alert($('div').offset().top)
// alert($('div').offset().left)
// alert($('div').offset().bottom)//只有X和Y轴值,没有bottom和right值
// alert($('div').position().left)
// alert($('span').position().left)
// alert($('span').position().top)
</script>
</html>
<body style="height: 2000px;">
<div>
</div>
</body>
<script type="text/javascript">
// window.οnscrοll=function(){
// console.log($(window).scrollTop());
// }
$('div').click(function(){
$(window).scrollTop(0);
})