小练习
页面定时器案例
有一个input框 两个按钮 一个开始 一个结束
1.点击开始按钮 input内展示当前时间并按秒数刷新
2.点击结束按钮 input内展示停止
ps:写完之后测试有无bug 连续多次点击开始按钮 再试试能不能结束
<input type="text" id="d1">
<input type="button" id="start" value="开始~">
<input type="button" id="end" value="结束">
<script>
let inputEle = document.getElementById('d1');
// 1. 先查找开始按钮 结束按钮
let startEle = document.getElementById('start')
let endEle = document.getElementById('end')
// 7.将存储循环定时任务的变量定位为全局变量
let t = null;
// 将展示时间的代码单独封装成一个函数
function showTime() {
// 3.获取当前时间
let currentTimeObj = new Date();
// 4.转换成格式化时间 便于用户名查看 将上述时间添加到input框中
inputEle.value = currentTimeObj.toTimeString();
}
// 2.给开始按钮绑定一个点击事件
startEle.onclick = function () {
if (!t) {
t = setInterval(showTime, 1000)
}
}
// 5.给结束按钮绑定一个点击事件
endEle.onclick = function () {
// 6.结束循环定时任务
clearInterval(t)
t = null;
}
搜索框案例
input内有默认的文本值 用户一旦选择该input想做内容修改就提前把内容清空
<head>
<meta charset="UTF-8">
<title>默认值</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
</head>
<body>
<input type="text" placeholder="啦啦啦~" id="d1">
<script>
let iEle = document.getElementById('d1')
iEle.onfocus = function () {
this.removeAttribute('placeholder')
}
iEle.onblur = function () {
this.setAttribute('placeholder', '略略略~')
}
</script>
</body>
筛选器方法
$("#id").next()
$("#id").nextAll()
$("#id").nextUntil("#i2")
$("#id").prev()
$("#id").prevAll()
$("#id").prevUntil("#i2")
$("#id").parent()
$("#id").parents() // 查找当前元素的所有的父辈元素
$("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。
$("#id").children();// 儿子们
$("#id").siblings();// 兄弟们
'''链式操作的底层原理'''
对象调用方法之后还会返回一个对象 从而实现链式操作的效果
操作标签
jQuery |
JS操作 |
addClass |
classlist.add() |
removeClass |
classlist.remove() |
hasClass |
classlist.contains() |
toggleClass |
classlist.toggle() |
.css('样式名','样式值') |
style.样式名 = '样式值' |
text() |
innerText() |
html() |
innerHTML() |
val() |
value |
[0].files |
files |
attr()静态属性 prop()动态变换(checked) |
setAttribute getAttribute |
append() |
append() |
prepend() |
|
after() |
|
before() |
|
remove()移除标签 |
|
empty()清空标签 |
|
jQuery绑定事件
JS绑定事件
标签对象.on事件名 = function(){事件代码}
btnEle.onclick = function(){alert(123)}
jQuery绑定事件
方式1
jQuery对象.事件名(function(){事件代码})
$btnEle.click(function(){alter(123)})
方式2
jQuery对象.on('事件名',function(){事件代码})
$btnEle.on('click',function(){alter(123)})
"""
有时候使用jQuery的方式1绑定事件如果无法触发 可以切换为方式2
"""
jQuery动画效果
show([s,[e],[fn]])
hide([s,[e],[fn]])
toggle([s],[e],[fn])
// 滑动
slideDown([s],[e],[fn])
slideUp([s,[e],[fn]])
slideToggle([s],[e],[fn])
// 淡入淡出
fadeIn([s],[e],[fn])
fadeOut([s],[e],[fn])
fadeTo([[s],o,[e],[fn]])
fadeToggle([s,[e],[fn]])
// 自定义(了解即可)
animate(p,[s],[e],[fn])
阻止后续事件
能够触发form表单提交数据动作的标签有两个
<input type="submit">
<button></button>
给已经有事件的标签绑定事件 会先执行绑定的 再去执行默认的
我们也可以让标签之前的事件不执行
return false
$(':submit').click(function (e){
alert('铁铁 稳住')
// return false 方式1
e.preventDefault()方式2
})
事件冒泡
涉及到标签嵌套并且有相同事件的时候 那么会逐级往上反馈并执行
$("span").click(function (e) {
alert("span");
return false; 方式1
e.stopPropagation(); 方式2
});
事件委托
"""
创建标签的两种方式
JS
document.createElement()
jQuery
$('<标签名>')
"""
事件绑定默认情况下是不会对动态创建的标签生效的 如果想生效需要事件委托
$('div').on('click','button',function () {
alert('你犯困的样子萌萌哒')
})
上述方式就可以解决动态标签事件的执行问题(注意委托指得是标签内部的标签)
Bootstrap框架
提前写好了所有的标签样式 直接拷贝使用即可
使用之前需要先导入 bootstrap涉及到js的部分需要使用jQuery
详情:http://www.fontawesome.com.cn/
Font Awesome中文网
8.29小练习
1.什么是python的垃圾回收机制
python解释器自带的一种机制,专门用来回收不可用的变量值所占用的内存空间
2.你所知道的能够实现单例模式的方式有哪些,尝试着手写几个
单例模式:多次实例化结果指向同一个实例
第一种:基于classmethod
第二种:基于装饰器
第三种:基于元类
第四种:基于__new__
第五种:基于模块
3.列举python中常用模块及主要功能,越多越好!
os模块 主要是跟当前程序所在的操作系统打交道
json模块 序列化数据 不同编程语言之间数据交互必备的模块(处理措施)
datetime和time模块 可导入时间
openpyxl 主要用于操作excel表格 也是pandas底层操作表格的模块
collections模块 给我们提供了更多数据类型
sys模块 主要是跟python解释器打交道
random随机数模块
subprocess模块 模拟计算机cmd命令窗口
hashlib加密模块
logging日志模块
4.什么是浮动,浮动的效果是什么,有没有坏处,如何解决
浮动可以理解为浮动元素会脱离文档的普通流,根据float的值向左或向右移动,直到它的外边界碰到父元素的内边界或另一个浮动元素的外边界为止
浮动带来的问题
1. 父元素的高度无法被撑开,影响与父元素同级的元素
2. 与浮动元素同级的非浮动元素(内联元素)会跟随其后
3. 如果当前元素浮动会影响后面元素,那么后面元素也得浮动(或者需要清除浮动)
伪类元素清除浮动
5.你所知道的定位有哪些,每个定位各有什么特点
1、id定位
2、name定位
3、class_name定位
4、link_text定位
5、partial_link_text定位
6、xpath
7、select定位
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)