jQuery小练习
![]()
//找到本页面中id是i1的标签
$('#i1')
//找到本页面中所有的h2标签
$('h2')
//找到本页面中所有的input标签
$('input')
//找到本页面所有样式类中有c1的标签
$('.c1')
//找到本页面所有样式类中有btn-default的标签
$('.btn-default')
//找到本页面所有样式类中有c1的标签和所有h2标签
$('.c1,h2')
//找到本页面所有样式类中有c1的标签和id是p3的标签
$('.c1,#p3')
//找到本页面所有样式类中有c1的标签和所有样式类中有btn的标签
$('.c1,.btn')
//找到本页面中form标签中的所有input标签
$('form').find('input')
//找到本页面中被包裹在label标签内的input标签
$('label input')
//找到本页面中紧挨在label标签后面的input标签
$('label+input')
//找到本页面中id为p2的标签后面所有和它同级的li标签
$('#p2~li')
//找到id值为f1的标签内部的第一个input标签
$('#f1 input:first')
//找到id值为my-checkbox的标签内部最后一个input标签
$('#my-checkbox input:last')
//找到id值为my-checkbox的标签内部没有被选中的那个input标签
$('#my-checkbox input[checked!="checked"]')
//找到所有含有input标签的label标签
$('label:has("input")')
View Code
class操作
js版本 jQuery版本
classList.add() addClass() // 添加类属性
classList.remove() removeClass() // 移除某个类属性
classList.contains() hasClass() // 验证是否包含某个类属性
classList.toggle() toggleClass() // 有则删除无则添加
CSS操作
// jQuery的链式操作 使用jQuery可以做到一行代码操作很多标签
// jQuery对象调用jQuery方法之后返回的还是当前jQuery对象 也就可以继续调用其他方法
/*
<p>111</p>
<p>222</p>
一行代码将第一个p标签变成红色第二个p标签变成绿色
*/
$('p').first().css('color','red').next().css('color','green')
![]()
class MyClass(object):
def func1(self):
print('func1')
return self
def func2(self):
print('func2')
return self
obj = MyClass()
obj.func1().func2()
python实现链式操作
位置操作
offset() // 当前标签相对于当前浏览器窗口相对位移
position() // 当前标签相对于父标签相对位移
scrollTop() // 上下滚动距离
$(window).scrollTop()
0
$(window).scrollTop()
969
$(window).scrollTop() // 括号内不加参数就是获取
1733
$(window).scrollTop(0) // 加了参数就是设置
n.fn.init [Window]
$(window).scrollTop(500)
n.fn.init [Window]
scrollLeft() // 左右滚动距离
尺寸
$('p').height() // 文本的高度
$('p').width() // 文本的宽度
$('p').innerHeight() // 文本高+padding高
$('p').innerWidth() // 文本宽+padding宽
$('p').outerHeight() // 文本高+padding高+border高
$('p').outerWidth() // 文本宽+padding宽+border宽
文本操作
操作标签内部文本
js jQuery
innerText text() // 括号内不加参数就是获取加了就是设置
innerHTML html()
$('div').text()
"
有些话听听就过去了,不要在意,都是成年人!
"
$('div').html()
"
<p>
有些话听听就过去了,不要在意,都是成年人!
</p>
"
$('div').text('你们都是我的大宝贝')
//w.fn.init [div, prevObject: w.fn.init(1)]
$('div').html('你个臭妹妹')
//w.fn.init [div, prevObject: w.fn.init(1)]
$('div').text('<h1>你们都是我的大宝贝</h1>') // 不能识别 标签
//w.fn.init [div, prevObject: w.fn.init(1)]
$('div').html('<h1>你个臭妹妹</h1>') // 可以识别 标签
//w.fn.init [div, prevObject: w.fn.init(1)]
获取值操作
$('#d1').val()
$('#d1').val('520快乐') // 括号内不加参数就是获取加了就是设置
$('#d2')[0].files[0] // 取文件的值 //小提示:如果说jQuery对象不会或不能操作 可以两个对象之间的转换
属性操作
.attr()
js jQuery
setAttribute() attr(name,value) // 增加、修改属性
getAttribute() attr(name) // 查看属性
removeAttribute() removeAttr(name) // 移除属性
//补充
在用变量存储对象的时候 js中推荐使用
XXXEle 标签对象
jQuery中推荐使用
$XXXEle jQuery对象
let $pEle = $('p')
$pEle.attr('id') //查看属性
$pEle.attr('class','c1') //增加属性
$pEle.attr('id','id666') //修改属性
$pEle.attr('password','jason123') //增加自定义属性
$pEle.removeAttr('password') //移除属性
.prop()
对于标签上有的能够看到的属性和自定义属性用attr
对于返回布尔值比如checkbox radio option是否被选中用prop
$('#d2').prop('checked') // 查看
//false
$('#d3').prop('checked',true) // 修改
//w.fn.init [input#d3]
$('#d3').prop('checked',false) // 修改
//w.fn.init [input#d3]
文档处理
js jQuery
createElement('p') $('<p>') // 创建
appendChild() append()
let $pEle = $('<p>')
$pEle.text('你好啊 草莓要不要来几个?')
$pEle.attr('id','d1')
$('#d1').append($pEle) // 内部尾部添加
$pEle.appendTo($('#d1')) // 内部尾部添加
$('#d1').prepend($pEle) // 内部头部添加
$pEle.prependTo($('#d1')) // 内部头部添加
$('#d2').after($pEle) // 放在某个标签后面
$pEle.insertAfter($('#d1')) // 放在某个标签后面
$('#d1').before($pEle) // 放在某个标签前面
$pEle.insertBefore($('#d2')) // 放在某个标签前面
$('#d1').remove() // 移除当前标签包括本标签(将标签从DOM树中删除)
$('#d1').empty() // 移除当前标签内部内容 不包括本标签
事件(jQuery)
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<button id="d1">吻我</button>
<button id="d2">亲我</button>
<script>
// 第一种
$('#d1').click(function () {
alert('别说话 吻我')
});
// 第二种(功能更加强大 还支持事件委托)
$('#d2').on('click',function () {
alert('借我钱买草莓 后面还你')
})
</script>
</body>
绑定事件的两种方式
克隆事件
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
<style>
#d1 {
height: 100px;
width: 100px;
background-color: orange;
border: 1px solid blue;
}
</style>
</head>
<body>
<button id="d1">屠龙宝刀,点击就送</button>
<script>
$('#d1').on('click',function () {
// console.log(this) // this指代是当前被操作的标签对象
// $(this).clone().insertAfter($('body')) // clone默认情况下只克隆html和css 不克隆事件
$(this).clone(true).insertAfter($('body')) // 括号内加true即可克隆事件
})
</script>
</body>
View Code
自定义模态框
![]()
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>自定义模态框</title>
<style>
.cover {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: darkgrey;
z-index: 999;
}
.modal {
width: 600px;
height: 400px;
background-color: white;
position: fixed;
left: 50%;
top: 50%;
margin-left: -300px;
margin-top: -200px;
z-index: 1000;
}
.hide {
display: none;
}
</style>
</head>
<body>
<input type="button" value="弹" id="i0">
<div class="cover hide"></div>
<div class="modal hide">
<label for="i1">姓名</label>
<input id="i1" type="text">
<label for="i2">爱好</label>
<input id="i2" type="text">
<input type="button" id="i3" value="关闭">
</div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
$("#i0").click(function () {
var coverEle = $(".cover")[0]; // 需要手动转
var modalEle = $(".modal")[0];
$(coverEle).removeClass("hide");
$(modalEle).removeClass("hide");
})
// var tButton = $("#i0")[0];
// tButton.onclick=function () {
// var coverEle = $(".cover")[0];
// var modalEle = $(".modal")[0];
// $(coverEle).removeClass("hide");
// $(modalEle).removeClass("hide");
// };
var cButton = $("#i3")[0];
cButton.onclick=function () {
var coverEle = $(".cover")[0];
var modalEle = $(".modal")[0];
$(coverEle).addClass("hide");
$(modalEle).addClass("hide");
}
</script>
</body>
View Code
左侧菜单
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
<style>
.left {
float: left;
background-color: darkgray;
width: 20%;
height: 100%;
position: fixed;
}
.title {
font-size: 36px;
color: white;
text-align: center;
}
.items {
border: 1px solid black;
}
.hide {
display: none;
}
</style>
</head>
<body>
<div class="left">
<div class="menu">
<div class="title">菜单一
<div class="items">111</div>
<div class="items">222</div>
<div class="items">333</div>
</div>
<div class="title">菜单二
<div class="items">111</div>
<div class="items">222</div>
<div class="items">333</div>
</div>
<div class="title">菜单三
<div class="items">111</div>
<div class="items">222</div>
<div class="items">333</div>
</div>
</div>
</div>
<script>
$('.title').click(function () {
// 先给所有的items加hide
$('.items').addClass('hide')
// 然后将被点击标签内部的hide移除
$(this).children().removeClass('hide')
})
</script>
</body>
View Code
返回顶部
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
<style>
.hide {
display: none;
}
#d1 {
position: fixed;
background-color: black;
right: 20px;
bottom: 20px;
height: 50px;
width: 50px;
}
</style>
</head>
<body>
<a href="" id="d1"></a>
<div style="height: 500px;background-color: red"></div>
<div style="height: 500px;background-color: greenyellow"></div>
<div style="height: 500px;background-color: blue"></div>
<a href="#d1" class="hide">回到顶部</a>
<script>
//.scroll 屏幕滚动事件
$(window).scroll(function () {
if($(window).scrollTop() > 100){
$('#d1').removeClass('hide')
}else{
$('#d1').addClass('hide')
}
})
</script>
</body>
View Code
自定义登陆校验
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<p>username:
<input type="text" id="username">
<span style="color: red"></span>
</p>
<p>password:
<input type="text" id="password">
<span style="color: red"></span>
</p>
<button id="d1">提交</button>
<script>
let $userName = $('#username')
let $passWord = $('#password')
$('#d1').click(function () {
// 获取用户输入的用户名和密码 做校验
let userName = $userName.val()
let passWord = $passWord.val()
if (!userName){
$userName.next().text("用户名不能为空")
}
if (!passWord){
$passWord.next().text('密码不能为空')
}
})
$('input').focus(function () {
$(this).next().text('')
})
</script>
</body>
View Code
input实时监控
![]()
<head>
<meta charset="UTF-8">
<title>k</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<input type="text" id="d1">
<script>
$('#d1').on('input',function () {
console.log(this.value)
})
</script>
</body>
View Code
hover事件
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<p id="d1">到家啊就是度假酒店</p>
<script>
// $("#d1").hover(function () { // 鼠标悬浮 + 鼠标移开
// alert(123)
// })
$('#d1').hover(
function () {
alert('我来了') // 悬浮
},
function () {
alert('我溜了') // 移开
}
)
</script>
</body>
View Code
键盘按键按下事件
![]()
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<script>
$(window).keydown(function (event) {
console.log(event.keyCode)
if (event.keyCode === 16){
alert('你按了shift键')
}
})
</script>
</body>
View Code