Table of Contents
设置元素读取属性(在标签上显示的属性)
设置或读取元素属性(涉及元素状态的用prop,属性取值是布尔的)
移除指定标签属性
操作元素样式
- 写好css样式,然后动态添加属性id和类到元素
- 对类名有一组方法方便操作(因为类名不唯一)
- addClass(“className”) 为元素添加类名
- removeClass(“className”) 移除指定类名
- toggleClass(“className”) 借助用户行为更改(比如点击事件),有则删除,无则添加
- 操作行内样式
- css(“attr”,”value”); 缺点修改样式多就变得复杂
- css(Json对象);传递一个json对象
- json对象:定义就是花括号,键和值都是字符串格式(推荐统一使用双引号){“name”:”abd”,”age”:”23”}
根据层次结构来获取元素
- parent()获取父元素,父元素唯一
- parents()/parents(“selector”) 获取祖先元素/满足选择器的父元素
- children()/children(“selector”) 获取直接子元素列表,可以循环获取,多个div获取多个子元素
- find(“selector”) 获取指定后代元素
- next()/next(“selector”) 获取下一个兄弟元素
- prev()/prev(“selector”) 获取上一个兄弟元素
- siblings()/siblings(“selector”) 获取所有兄弟元素
元素的创建添加删除
- 创建元素
- $(“直接写标签内容”)
- 添加元素
- 作为子元素添加
$parent.append(element); 添加到末尾
$parent.prepend(element); 添加到开头
- 作为兄弟元素添加
$obj.before(element) 在obj之前添加元素
$obj.after(element) 在obj之后添加元素
- 作为子元素添加
- 删除元素
- obj.remove() 谁调用谁删除
事件处理
-
窗口加载完毕
原生js用onload
js和jq的区别:
- 原生js的onload会造成覆盖问题,需要手动检测,jq的ready方法已经封装好检测,不需要考虑覆盖问题
- js会等所有元素加载完毕,jq是元素节点加载完毕
jquery使用ready()表示
* 语法1:$(document).ready( function) 文档加载完毕
* 语法2:$().ready(function) 文档加载完毕执行
* 语法3:$(function) 文档加载完毕执行
-
this关键字
- this关键字是原生的js对象,需要转换为jq对象使用
-
绑定方式(省略“on”的事件)
- 使用on() 绑定:
- $(‘h1’).on(“click”,function (){})
- 使用bind绑定:(本质就是on)
- $(‘h1’).bind(“click”,function (){})
- 将省略on前缀的事件名称做为方法名直接调用,例:$(‘h1’).click(function(){}) onclick省略on
- 使用on() 绑定:
-
事件对象的获取和使用同原生JS
- 在传递的函数中添加参数event ,function(event)(){}
4.扩展延伸知识
-
空格的代码:
- 半方大的空白\ 或\
- 全方大的空白\ 或\
- 不断行的空白格\ 或\
-
jquery链式调用
- 链式调用就类似链表,可以连续使用 css().css()
-
jquery如有没有找到方法,很大概率是jq变成了原生js
https://stackoverflow.com/questions/4114870/jquery-value-attr-is-not-a-function
-
JavaScript 和 jquery
如果文档是标签形式的字符串,那么它一定是JavaScript
javascript都是变量(set或get)
jquery都是方法
-
原生JS中onload时间会被覆盖
- 需要检测一下,是否已经定义过onload
- 判断方法就是判断onload是否为null
if(window.onload){
var fn = window.onload;
fn();
}
window.onload = function(){
//code;
}
-
HTML事件需要注意:
在文档加载完毕之后,在添加事件
-
去掉a标签的下划线
decoration:none;
-
轮廓线的英文
outline
-
浏览器渲染bug
- 浏览器渲染图片会在底部多留3px,如有有文字,好像文字溢出
-
调整行内块元素垂直对齐方式,
- veritycal-align
- veritycal-align调整的是元素左右的对齐方式
-
行内元素不支持上下margin,行内块也不支持
- font-height 可以调行高
-
css中具有多个属性,顺序随意
- 比如backgroud: 参数的顺序位置可以随意填写
-
margin,padding的计算
- 具有优先级,比如上下边距20px,父元素只有20px空闲,那么上边距为20px,下边距为0px
-
CSS样式继承规则
首先从父元素继承,然后依次像祖先元素
-
vertical-align对齐方式
常用的属性:top,middle,bottom,%百分比,inherit继承,text-top/bottom 文字的顶部/底部
6.今天都复习了之前的什么内容
空格的代码:
- 半方大的空白\ 或\
- 全方大的空白\ 或\
- 不断行的空白格\ 或\
jquery链式调用
- 链式调用就类似链表,可以连续使用 css().css()
jquery如有没有找到方法,很大概率是jq变成了原生js
https://stackoverflow.com/questions/4114870/jquery-value-attr-is-not-a-function
JavaScript 和 jquery
如果文档是标签形式的字符串,那么它一定是JavaScript
javascript都是变量(set或get)
jquery都是方法
原生JS中onload时间会被覆盖
- 需要检测一下,是否已经定义过onload
- 判断方法就是判断onload是否为null
if(window.onload){ var fn = window.onload; fn(); } window.onload = function(){ //code; }
HTML事件需要注意:
在文档加载完毕之后,在添加事件
去掉a标签的下划线
decoration:none;
轮廓线的英文
outline
浏览器渲染bug
- 浏览器渲染图片会在底部多留3px,如有有文字,好像文字溢出
调整行内块元素垂直对齐方式,
- veritycal-align
- veritycal-align调整的是元素左右的对齐方式
行内元素不支持上下margin,行内块也不支持
- font-height 可以调行高
css中具有多个属性,顺序随意
- 比如backgroud: 参数的顺序位置可以随意填写
margin,padding的计算
- 具有优先级,比如上下边距20px,父元素只有20px空闲,那么上边距为20px,下边距为0px
CSS样式继承规则
首先从父元素继承,然后依次像祖先元素
vertical-align对齐方式
常用的属性:top,middle,bottom,%百分比,inherit继承,text-top/bottom 文字的顶部/底部