首页 前端知识 前端一天入门(html;css;js;jquery)

前端一天入门(html;css;js;jquery)

2024-11-04 10:11:06 前端知识 前端哥 700 282 我要收藏

文章目录

  • 前端-HTML
    • 标签
      • head标签
      • body标签
        • 文本与实体字符
        • 多媒体
        • 超链接与锚点
        • 列表
        • 表格
    • 内嵌框架
    • 表单
      • **表单元素**
  • 前端-CSS
    • 书写方式
    • 选择器
      • 基本选择器
      • 关系选择器
      • 伪选择器
    • 浮动float
    • 定位position
    • 盒子模型
  • 前端-JS
    • 书写方式
    • 数据类型
    • 事件
    • BOM
    • DOM
  • 前端-jQuery
    • 页面加载
    • 选择器
      • 基本选择器
      • 属性选择器
      • 位置选择器
      • 表单选择器
    • DOM
    • 动画效果
    • 表单验证

前端-HTML

网络传输:客户端输入URL后根据HTTP协议在服务端请求资源,服务端响应给客户端HTML(描述网页的语言),通过浏览器自带的HTML解析器进行解析

标签

head标签

<title><meta><link><style><script><base>
复制
<head>
<!--页面标题-->
<title>百度一下,你就知道</title>
<!--设置页面的编码,防止乱码现象
charset="utf-8" 这是属性,以键值对的形式给出 k=v a=b
-->
<meta charset="utf-8" /><!--简写-->
<!--繁写形式:content-type=text/html-->
<!--<meta http-equiv="content-type" content="text/html;charset=utf-8" />-->
<!--页面刷新效果:3秒刷新到百度页面-->
<!--<meta http-equiv="refresh" content="3;https://www.baidu.com" />-->
<!--页面作者-->
<meta name="author" content="msb;213412@qq.com" />
<!--设置页面搜索的关键字-->
<meta name="keywords" content="马士兵教育;线上培训;架构师课程" />
<!--页面描述-->
<meta name="description" content="马士兵教育详情页" />
<!--link标签引入外部资源-->
<link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon" />
</head>
复制

body标签

文本与实体字符
<!--文本标签与实体字符-->
<!--标题标签:h1-h6 字号逐渐变小,每个标题独占一行,自带换行效果-->
<h5>媒体:为人父母,要不要“持证上岗”?</h5>
<!--横线标签
300px :固定宽度
30%:页面宽度的百分比,会随着页面宽度的变化而变化
-->
<hr width="300px" align="center"/>
<hr width="30%" align="center"/>
<!--段落标签:段落效果:段落中文字自动换行,段落和段落之间有空行-->
<p>&nbsp;&nbsp;5月&emsp;26日,“建议父母持合格&lt;父母证&gt;上岗&copy;”。</p>
<!--加粗倾斜下划线-->
<i><u><b>加粗倾斜下划线</b></u></i>
<!--一箭穿心-->
<del>你好 你不好</del>
<!--预编译标签:在页面上显示原样效果-->
<pre>
System.out.println("hello msb....");
</pre>
<!--换行-->
5月26日,“建议父母持合格父母证上岗”冲上微博<br />热搜,迅速的全国两会上,全国政
<!--字体标签-->
<font color="#397655" size="7" face="萝莉体 第二版">建议父格证上岗</font>
复制
多媒体
<!--图片
src:引入图片的位置
width:设置宽度 height:设置高度
注意:一般高度和宽度只设置一个即可,另一个会按照比例自动适应
title:鼠标悬浮在图片上的提示语
alt:图片加载失败的提示语
-->
<img src="img/s.jpg" width="300px" title="这是一个" alt="图片加载失败"/>
<!--音频-->
<embed src="music/我要你.mp3"></embed>
<!--视频-->
<embed src="video/周杰伦 - 说好的幸福呢.mp4" height="500px"></embed>
复制
超链接与锚点
<!--
href:控制跳转的目标位置
target:_self 在自身页面打开
_blank 在空白页面打开
-->
<a href="">这是一个超链接02</a> <!--跳转到自身页面-->
<a href="https://www.baidu.com" target="_self">这是一个超链接04</a>
<a href="https://www.baidu.com" target="_blank">这是一个超链接05</a>
<!--锚点-->
<!--
name:设置锚点的名称
href="文档...#锚点名称"进行跳转
-->
<a name="1F"></a>
<h1>手机</h1>
<p>华为p40</p>
<a name="2F"></a>
<h1>化妆品</h1>
<p>大宝</p>
<a name="3F"></a>
<h1>母婴产品</h1>
<p>奶粉</p>
<a name="4F"></a>
<h1>图书</h1>
<p>thinking in java</p>
<a href="#1F">手机</a>
<a href="#2F">化妆品</a>
<a href="#3F">母婴产品</a>
<a href="#4F">书籍</a>
复制
列表
<!--无序列表:
type:可以设置列表前图标的样式
更换图标样式,借助css技术: style="list-style:url(img/act.jpg) ;"
-->
<h1>起床以后需要做的事</h1>
<ul type="square">
<li>睁眼</li>
<li>穿衣服</li>
<li>上厕所</li>
<li>吃早饭</li>
<li>洗漱</li>
<li>出门</li>
</ul>
<!--有序列表:
type:可以设置列表的标号:1,a,A,i,I
start:设置起始标号
-->
<h1>学习java的顺序</h1>
<ol type="A" start="3">
<li>JAVASE</li>
<li>ORACLE</li>
<li>MYSQL</li>
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
</ol>
复制
表格
<!--表格:
table:表格
tr:行
td:单元格
th:特殊单元格:表头效果:加粗,居中
rowspan:行合并
colspan:列合并
默认情况下表格是没有边框的,通过属性来增加表框:
border:设置边框大小
cellspacing:设置单元格和边框之间的空隙
align="center" 设置居中
background 设置背景图片 background="img/ss.jpg"
bgcolor :设置背景颜色
-->
<table border="1px" cellspacing="0px" width="400px" height="300px" bgcolor="darkseagreen" >
<tr bgcolor="bisque">
<th>学号</th>
<th>姓名</th>
<th>年纪</th>
<th>成绩</th>
</tr>
<tr>
<td align="center">1001</td>
<td>丽丽</td>
<td>19</td>
<td rowspan="3">90.5</td>
</tr>
<tr>
<td colspan="2" align="center">2006</td>
<td>30</td>
</tr>
<tr>
<td>3007</td>
<td>小明</td>
<td>18</td>
</tr>
</table>
复制

内嵌框架

<iframe src="URL" name="myname"></iframe>
<a href="img/java核心技术.jpg" target="myname">在myname的内嵌框架打开img/java核心技术.jpg</a>
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<iframe src="书籍导航页面.html" height="700px" width="30%"></iframe>
<!--内嵌框架-->
<iframe name="iframe_my" width="67%" height="700px" src="img/think in java.jpg"></iframe>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="img/java核心技术.jpg" target="iframe_my">java核</a>
</body>
</html>
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<!--框架集合:和body是并列的概念,不要将框架集合放入body中-->
<frameset rows="20%,*,30%">
<frame />
<frameset cols="30%,40%,*">
<frame />
<frame src="index.html"/>
<frame />
</frameset>
<frameset cols="50%,*">
<frame />
<frame />
</frameset>
</frameset>
</html>
复制

表单

<form action="url" method=get|post name="myform" ></form>
-name:表单提交时的名称
-action:提交到的地址
-method:提交方式,有get和post两种,默认为get
https://www.baidu.com/s?wd=123123&rsv_spt=1&rsv_iqid=0xb7c24b2f08ce4098&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=6&rsv_sug1=1&rsv_sug7=100
action="https://www.baidu.com/s"
内容的name=wd value=123123
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--定义form表单:form表单会采集包含的有效数据,提交到后端,进行交互-->
<!--
【1】action属性
http://127.0.0.1:8020/Form表单/aaa?username=nana&pwd=123123
?之前是提交的资源的目标地址
?之后是提交的具体的数据
Form表单:指的是你的项目名字:Form表单
PS:可以使用在线解析工具查看:urlencode
aaa:目标资源 --》去当前项目下找aaa了
?后的内容:
我们写的文本框,密码框等必须要加入一个属性:name
多个键值对之间 ,用&符号进行拼接
只有放在form表单中的内容才会被收集并提交
【2】method属性:默认情况下不写method属性的时候就相当于method="get"
get方式:提交数据可见,不安全,提交数据长度有限制,效率高
post方式 :提交数据不可见,安全,提交数据长度没有限制,效率低
-->
<form action="aaa" method="post">
用户名:<input type="text" name="username" /><br />
密码:<input type="password" name="pwd" /><br />
<input type="submit" />
</form>
</body>
</html>
复制

表单元素

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="" method="get">
<!--表单元素-->
<!--文本框:
input标签使用很广泛,通过type属性的不同值,来表现不同的形态。
readonly只读:只是不能修改,但是其他操作都可以,可以正常提交
disabled禁用:完全不用,不能正常提交
autofocus:自动获取焦点
required:必填项
-->
<input type="text" name="uname" placeholder="请录入身份证信息"/>
<input type="text" name="uname2" value="123123" readonly="true"/>
<input type="text" name="uname3" value="456456" disabled="disabled"/>
<!--密码框:效果录入信息不可见-->
<input type="password" name="pwd" />
<!--单选按钮-->
性别:
<input type="radio" name="gender" value="1" checked="checked"/>
<input type="radio" name="gender" value="0"/>
<!--多选按钮:
多个选项提交的时候,键值对用&符号进行拼接:例如:favlan=1&favlan=3
-->
你喜欢的语言:
<input type="checkbox" name="favlan" value="1" checked="checked"/>java
<input type="checkbox" name="favlan" value="2" checked="checked"/>python
<input type="checkbox" name="favlan" value="3"/>php
<input type="checkbox" name="favlan" value="4"/>c#
<!--文件-->
<input type="file" />
<!--隐藏域-->
<input type="hidden" name="uname6" value="123123" />
<!--普通按钮:普通按钮没有什么效果,就是可以点击,以后学了js,可以加入事件-->
<input type="button" value="普通按钮" />
<!--特殊按钮:重置按钮将页面恢复到初始状态-->
<input type="reset" />
<!--特殊按钮:图片按钮-->
<input type="image" src="img/java核心技术.jpg" />
<!--下拉列表
默认选中:selected="selected"
多选:multiple="multiple"
-->
<br/>你喜欢的城市:
<select name="city" multiple="multiple">
<option value="0">---请选择---</option>
<option value="1">哈尔滨市</option>
<option value="2" selected="selected">青岛市</option>
<option value="3">郑州市</option>
<option value="4">西安市</option>
<option value="5">天津市</option>
</select>
<!--多行文本框
利用css样式来控制大小不可变:style="resize: none;"
-->
<br/>自我介绍:
<textarea style="resize: none;" rows="10" cols="30">请在这里填写信息。。</textarea>
<br />
<!--label标签
点击label标签会根据for对应的id自动跟踪
-->
<label for="uname">用户名:</label><input type="text" name="uername" id="uname"/>
<!--HTML5新增:-->
<input type="email" name="email" />
<input type="url" />
<input type="color" />
<input type="number" min="1" max="10" step="3" value="4"/>
1<input type="range" min="1" max="10" name="range" step="3"/>10
<input type="date" />
<input type="month" />
<input type="week" />
<!--特殊按钮:提交按钮:具备提交功能-->
<input type="submit" />
</form>
</body>
</html>
复制

前端-CSS

选择器+样式

书写方式

就近原则

  • 内联样式
  • 内部样式
  • 外部样式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!--内部样式-->
<style type="text/css">
h1{
color: yellow;
}
</style>
<!--外部样式-->
<link rel="stylesheet" type="text/css" href="css/mystyle.css"/>
</head>
<body>
<!--内联样式-->
<h1 style="color: red;">这是一个标题</h1>
</body>
</html>
复制

选择器

基本选择器

id选择器>class选择器>元素选择器

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
/*将所有元素的样式:外边距,边框,内边距全部设置为0*/
*{
margin: 0px;
border: 0px;
padding: 0px;
}
<!--class选择器-->
.mycls{
color: red;
}
<!--id选择器-->
#myid{
color: yellow;
}
<!--元素选择器-->
h1{
color: greenyellow;
}
input[type="text"][value="zhaoss1"]{
background-color: yellow;
}
</style>
</head>
<body>
<h1 class="mycls" id="myid">我是标题</h1>
用户名:<input type="text" value="zhaoss1" />
用户名2:<input type="text" value="zhaoss2" />
</body>
</html>
复制

关系选择器

div占行,span占行内一部分

  • 后代选择器

    • 父 子代{
      样式
      }
      复制
  • 子代选择器

    • 父>子代{
      样式
      }
      复制
  • 子代选择器 范围 包含于 后代选择器

伪选择器

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
/*设置静止状态*/
a:link{
color: yellow;
}
/*设置鼠标悬浮状态*/
a:hover{
color: red;
}
/*设置触发状态*/
a:active{
color: blue;
}
/*设置完成状态*/
a:visited{
color: green;
}
</style>
</head>
<body>
<a href="index.html">超链接</a>
</body>
</html>
复制

浮动float

使元素脱离文档流

style="float:left/right/none"
复制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

消除浮动

  • 浮动父节点添加overflow:hidden
  • 浮动父节点添加height
  • 被影响物体添加clear:both

定位position

  • 静态定位static

  • 相对定位relative

    • 使用:小范围/配合绝对定位使用
      关键:保留原来的占位
      position: relative;bottom: 10px;right: 20px;z-index:10;
      向左上移动,覆盖z-index小于10的,被大于10的覆盖
      复制
  • 绝对定位absolute

    • 使用:父级节点relative定位,子级节点使用绝对定位(否则针对body进行偏移)
      关键:释放原来的占位
      复制
  • 固定定位fixed

盒子模型

  • 控制当前元素相对于外部元素的位置:margin
  • 控制内部元素相对于当前元素的位置:padding
  • 控制当前元素的实际内容:width;height
  • 控制当前元素的填充色:padding+width;height

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前端-JS

  • ECMAScript:JS的基础语法部分
  • DOM:使用document对象操作文档内容的编程
  • BOM:使用window对象操作浏览器行为的编程

书写方式

<!DOCTYPE html>
<html>
<head>
<!--内嵌式引入方式-->
<script type="text/javascript"></script>
<!--链接式引入方式-->
<script type="text/javascript" src="js/myjs.js"></script>
</head>
<body>
<input type="button" value="点我呀" onclick="fun1()" />
</body>
</html>
复制

数据类型

  • 数据定义

    var 变量 = 值
    String Number boolean null undefined object
    Math Date
    复制
  • 数据运算

    / mod
    能除尽,则默认结果就是一个整数,不能除尽,结果默认就是浮点数
    除零 => Infinity
    0取余数 => NaN(not a number)
    +
    如果一段是字符串,就变成了文字拼接
    数字和 boolean类型相加 true会转变成1 false会转变成0 再做数学运算
    ==
    先比较类型,如果类型一致,再比较内容,如果类型不一致,会强制转换为number再比较内容
    ===
    数据类型不同 直接返回false如果类型相同 才会比较内容
    复制
  • 函数

    /*
    * 第一种语法格式 常见
    * function 函数名(参数列表){js代码}
    * 第二种语法
    * var 函数名=function(参数列表){JS代码}
    * 第三种语法 不常用 了解
    * var 函数名=new Function('js代码')
    * */
    function fun1(){
    alert("你好");
    }
    var fun2=function(){
    alert("你很好")
    }
    var fun3=new Function('alert("你非常好");');
    /*
    *
    * 1传入的实参可以和形参个数不一致
    * 2如果函数中有返回值,那么直接用return关键字返回即可
    * */
    function fun1(a,b,c){
    alert("a:"+a);
    alert("b:"+b);
    alert("c:"+c);
    }
    //fun1(10,"hello js",false);
    // 少传参数 OK
    //fun1(1,2);
    // 多传参数 OK 多出来的参数相当于没传
    复制
  • 数组

    /* 创建
    空数组 new Array();
    定长数组 new Array(5);
    var arr3=new Array("asdf",10,20.3,true);
    var arr4=["asdf",10,20.3,true];
    */
    /* 修改长度(length、索引)
    var arr = [1,2,3];
    arr.length=5;
    arr[9]=99;
    */
    /* 遍历
    <script>
    var arr=[5,7,3,1,6,2,4,9,8];
    for(var i=0;i<arr.length;i++){
    console.log(arr[i])
    }
    for (var i in arr){
    console.log(arr[i])
    }
    </script>
    */
    /*
    <script>
    var arr=[1,2,3,4,5,6,7,8,9];
    var index =arr.indexOf(7);//查询元素索引的方法
    // 合并两个数组
    var children = hege.concat(stale);
    // 合并三个数组
    var family = parents.concat(brothers, children);
    // 合并字符串
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    var fs =fruits.join();
    // 移除最后一个元素
    var fruit=fruits.pop();
    // 想结尾增加元素
    fruits.push("Grape");
    //反转数组
    fruits.reverse();
    //删除数组第一个元素
    var ss =fruits.shift();
    //向第一个位置添加元素
    fruits.unshift("火龙果");
    // 截取子数组 [)
    var citrus = fruits.slice(1,3);
    // 排序
    var numbers=[5,7,9,6,1,8,3,4,2];
    numbers.sort(function(a,b){return b-a});
    </script>
    */
    复制
  • object

    • 实例化
    <script>
    // 1.实例化对象
    var obj =new Object();
    obj.name="张思锐";
    obj.eat=function(food){
    console.log(this.name+"正在吃"+food)
    }
    // 2.构造方法
    function Person(pname,page){
    this.pname=pname;
    this.eat=function(food){
    console.log(this.pname+"正在吃"+food);
    }
    }
    var p1=new Person("张思锐",10);
    // 3.json
    var person ={
    name:"晓明",
    eat:function(food){
    console.log(this.name+"正在吃"+food)
    }
    };
    </script>
    复制
    • 原型的_proto_属性执行Object(Object对象是所有的原型)
    <script>
    // 准备一个构造方法
    function Person(pname,page){
    this.pname=pname;
    this.page=page;
    this.eat=function(food){
    console.log(this.page+"岁的"+this.pname+"正在吃"+food);
    }
    }
    //给Person的原型增加属性
    Person.prototype.gender="男";
    //给Person的原型增加一个方法
    Person.prototype.sleep=function(){
    console.log(this.page+"岁的"+this.gender+"孩儿"+this.pname+"正在睡觉");
    }
    //给最终原型增加属性
    Object.prototype.gender="男";
    //给Person的原型增加一个方法
    Object.prototype.sleep=function(){
    console.log(this.page+"岁的"+this.gender+"孩儿"+this.pname+"正在睡觉");
    }
    </script>
    复制

事件

  • 鼠标事件

    onclike ondblclick双击 oncontextmenu右键
    onmouse + down/enter/leave/over/mvove/out/up
    复制
  • 键盘事件

    onkey + down/up/press
    复制
  • 表单事件

    onblur失去焦点 onfocus获得焦点 onchange oninput onreset onsearch onselect onsubmit
    复制
  • 页面加载

    <body onload="testFun()">
    复制

BOM

  • location

    function fun1(){
    console.log(location.host);// 服务器的IP+端口号
    console.log(location.hostname);// IP
    console.log(location.port);// 端口号
    console.log(location.href);// 地址栏中具体的文字
    location.href="https://www.baidu.com"
    }
    复制
  • history

    function fun1(){
    window.history.forward();
    }
    function fun2(){
    history.back();
    }
    function fun3(){
    history.go(2); // 正整数 向前跳转 * 页 负整数 向后跳转*页
    }
    复制
  • screen

    console.info(window.screen.width)
    console.info(window.screen.height)
    console.info(navigator.userAgent)
    console.info(navigator.appName)
    复制
  • 弹窗

    window.alert("你好呀");//普通信息提示框
    var con =window.confirm("确定要删除***?"); // 确认框
    var message =window.prompt("请输入3号名字","例如:小刚"); // 信息输入框
    复制
  • 定时器

    <script>
    var intervalIDS =new Array(); // [1,2,3 ]
    // 循环执行的定时器任务
    function startInterval(){
    // 2
    var intervalID = window.setInterval(
    function(){
    var today =new Date();
    var hours=today.getHours();
    var minutes=today.getMinutes();
    var seconds =today.getSeconds();
    var str = hours+"点"+minutes+"分"+seconds+"秒";
    var ta =document.getElementById("timeArea");
    ta.value =str;
    },
    1000
    );
    intervalIDS.push(intervalID);
    }
    function stopInterval(){
    while(intervalIDS.length >0){
    window.clearInterval(intervalIDS.shift());
    }
    }
    var timeoutIDS =new Array();
    // 执行一次的定时器任务
    function startTimeout(){
    var timeoutID =window.setTimeout(
    function(){
    var today =new Date();
    var hours=today.getHours();
    var minutes=today.getMinutes();
    var seconds =today.getSeconds();
    var str = hours+"点"+minutes+"分"+seconds+"秒";
    console.log(str)
    },
    5000
    );
    timeoutIDS.push(timeoutID);
    }
    function stopTimeout(){
    while(timeoutIDS.length >0){
    window.clearTimeout(timeoutIDS.shift());
    }
    }
    </script>
    复制

DOM

  • 获取节点

    var element1 =document.getElementById("d1");
    var elements =document.getElementsByClassName(className);
    var elements =document.getElementsByTagName("input");
    var elements=document.getElementsByName("hobby");
    for(var i =0;i<elements.length;i++){
    console.log(elements[i])
    }
    复制
  • 操作节点属性和样式

    var node =document.getElementById("in1");
    //改变属性值
    node.type="button";
    node.value="你好我也好";
    //getAttribute setAttribute
    console.log(node.getAttribute("type"));
    node.setAttribute("value","大家好");
    element.style.width="200px";
    element.style.height="200px";
    element.style.border="10px solid green";
    复制
  • 操作标签文本

    var element1=document.getElementById("d1");
    /*
    * innerText 不包含HTML结构
    * innerHTML 包含HTML结构
    * */
    console.log("innerText>>>"+element1.innerText);
    element1.innerText="一刻也不能分割"
    element1.innerHTML="<h1>一刻也不能分割</h1>"
    element1.value="无论我走到哪里";
    复制
  • 修改节点

    • 创建元素createElement()
    • 增加元素appendChild()
    • 删除元素removeChild()
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    #d1{
    border: 1px solid red;
    width: 80%;
    height: 200px;
    }
    </style>
    <script>
    function fun1(){
    var div1=document.getElementById("d1");
    // 通过JS创建标签
    var in1=document.createElement("input");
    in1.setAttribute("type","text");
    in1.setAttribute("value","请输入内容");
    var in2=document.createElement("input");
    in2.setAttribute("type","password");
    in2.setAttribute("value","123456789");
    var in3=document.createElement("input");
    in3.setAttribute("type","button");
    in3.setAttribute("value","删除");
    var br=document.createElement("br");
    in3.onclick=function (){
    div1.removeChild(in1)
    div1.removeChild(in2)
    div1.removeChild(in3)
    div1.removeChild(br)
    }
    div1.appendChild(in1);
    div1.appendChild(in2);
    div1.appendChild(in3);
    div1.appendChild(br);
    }
    </script>
    </head>
    <body>
    <div id="d1">
    </div>
    <input type="button" value="增加" onclick="fun1()" />
    </body>
    </html>
    复制

前端-jQuery

页面加载

jQuery(document).ready(function(){});
$(document).ready(function({}));
$(function(){})
复制

选择器

基本选择器

$(function(){
//标签选择器 $("a")
//$("h3").addClass("myClass");
//$("p").addClass("myClass");
//ID选择器 $("#id")
//$("#h31").addClass("myClass");
//$("h3#h31").addClass("myClass");
//类选择器 $(".class")
//$(".red1").addClass("myClass");
//通配选择器 $("*")
//$("*").addClass("myClass");
//并集选择器$("elem1,elem2,elem3")
//$("#h31,span,div").addClass("myClass");
//后代选择器$(ul li)
//$("p span").addClass("myClass");
//父子选择器 $(ul>li)
//$("p>span").addClass("myClass");
//后面第一个兄弟元素 prev + next
//$("h3+p").addClass("myClass");
//后面所有的兄弟元素 prev ~ next
$("h3~p").addClass("myClass");
})
复制

属性选择器

$(function() {
//[attribute]
//$("a").addClass("myClass");
//$("a[href]").addClass("myClass");
//[attribute1][attribute2] a标签里有href和title属性的
//$("a[href][title]").addClass("myClass");
//[attribute=value]
//$("a[href='film-2.html']").addClass("myClass");
//[attribute!=value]
//$("a[href][href!='film-2.html']").addClass("myClass");
//[attribute^=value]
//$("a[href^='http']").addClass("myClass");
//[attribute$=value
//$("a[href$='htm']").addClass("myClass");
//[attribute*=value] a标签里href包含mashibing
$("a[href*='mashibing']").addClass("myClass");
});
复制

位置选择器

$(function(){
//位置针对整个页面
//:first :last :odd :even
//$("p:first").addClass("myClass");
//$("p:last").addClass("myClass");
//$("p:odd").addClass("myClass");//索引从0开始 奇数的索引 1 3 5 第偶数的元素
//$("p:even").addClass("myClass"); //
//:eq(n) :gt(n) :lt(n)
//$("p:eq(4)").addClass("myClass"); //equals
//$("p:lt(4)").addClass("myClass");//less than
//$("p:gt(4)").addClass("myClass");//greater than
//位置针对上级标签(父节点的第n个标签)
//:first-child :last-child :only-child
//$("p:first-child").addClass("myClass");
//$("p:last-child").addClass("myClass");
//$("p:only-child").addClass("myClass");
//:nth-child(n) :nth-child(odd|even) :nth-child(xn+y)
//索引从0开始 只有此处从1开始
//$("p:nth-child(2)").addClass("myClass");
//$("p:nth-child(odd)").addClass("myClass");
//$("p:nth-child(even)").addClass("myClass");
//$("p:nth-child(3n+1)").addClass("myClass");//n=0,1,2,3
});
复制

表单选择器

$(function() {
//:text :password :radio :checkbox :hidden :file :submit
//:input 匹配所有 input, textarea, select 和 button 元素
//var arr = $(":input");
//:selected :checked :enabled :disabled
//var arr = $(":disabled");
//var arr = $(":enabled");
//var arr = $(":input:not(:disabled)");
//var arr = $(":checked");
//var arr = $(":selected");
/* var arr = $(":input:visible")
for(var i = 0; i < arr.length; i++) {
console.info(arr[i]);
}*/
});
复制

DOM

使用原生JSDOM对象转换成jQuery对象方式是$(dom对象)

jQuery对象转换成DOM对象的方式是jQuery对象[0]/.get(0)

  • 操作属性和样式

    $("#f1").attr("color")
    $("#f1").attr("color","green")
    $("#f1").removeAttr("color")
    $("#d1").css("width")
    $("#d1").css("width","200px")
    $("#d2").addClass("b")
    $("#d2").removeClass("b")
    $("#d2").toggleClass("b")// 原来有b 则删除,如果没有,则增加b
    复制
  • 文本与增添元素

    $("#d1").text("<h1>牛气冲天</h1>");
    $("#d1").html("<h1>牛气冲天</h1>");
    $("#i1").val("你好");
    $("#d1").empty();
    $("#d1").remove(); // 移除当前元素本身
    // 创建元素
    var span1=$("<span></span>");
    // 设置文字
    span1.text("今天天气很好");
    $('#d1').append(span1)
    var h =$("<h3>测试文字</h3>").css("color","red").css("border","1px solid green")
    h.appendTo($('#d1'))
    $("#d1").before(span1);
    span1.insertBefore($("#d1"));
    $("#d1").after(span1);
    span1.insertAfter($("#d1"));
    复制
  • 绑定和触发事件

    <script>
    //原生JS
    /*var div1=document.getElementById("d1")
    div1.onmouseover=function (){
    alert("悬停")
    }*/
    /* bind 方法绑定事件(one绑定事件一次)
    * 在jQuery中,事件的名称= 原始名称去掉 on
    * */
    $("#d1").bind('mouseover',function(){
    $('#d1').css("background-color",'yellow')
    });
    /*事件名作为方法*/
    $("#d1").mouseleave(function(){
    $('#d1').css("background-color",'lightgreen')
    });
    $("#d1").unbind(); 接触绑定的所有事件
    $("#d1").unbind("mouseover") // 接触绑定的指定事件
    $("#i1").focus()
    </script>
    复制
  • 遍历

    var $lis =$('li')
    for(var i = 0;i<$lis.length;i++){
    /*遍历出的每个元素是DOM对象*/
    console.info($lis[i].innerText)
    }
    for(var i in $lis){
    console.info($lis[i].innerText)
    }
    /*遍历所有元素的方法*/
    each每拿出一个元素 都会执行一次内部的function
    i 当前元素的所有
    e 当前元素 DOM对象
    * */
    $lis.each(function (i,e){
    console.info(i+'>>>'+$(e).text())
    })
    $.each($lis,function (i,e){
    console.info(i+'>>>'+$(e).text())
    })
    复制

动画效果

  • 出现和隐藏

    $("#d1").show(2000,'swing',function(){
    alert("动画执行结束")
    })
    $("#d1").hide(3000)
    $("#d1").toggle(5000) //show时hide,hide时show
    复制
  • 上下滑动

    $("#d1").slideDown(2000);
    $("#d1").slideUp(3000)
    $("#d1").slideToggle(5000);
    复制
  • 淡入淡出

    $("#d1").fadeIn(2000);
    $("#d1").fadeOut(3000)
    $("#d1").fadeToggle(5000);
    $("#d1").fadeTo(5000,0.2);// 0-1
    复制
  • 自定义

    $(function(){
    //$("").animate({动画内容},执行时间,动画结束后要执行的方法)
    $("#d1").animate({
    width:"100px",
    height:"100px",
    opcity:0.5,
    borderRadius:"50px"
    },2000,function(){
    alert("动画执行结束了")
    })
    })
    复制

表单验证

  • 对于表单的提交,要给form标签绑定onSubmit事件,而不是给submit按钮绑定onClick事件,onsubmit绑定的方法时要有return关键字,绑定的方法要返回true/false

  • 表单项内容不管输入的是字符串、数字、日期,js、jQuery、JSP接收后都是String类型

  • 表单的验证和String对象有密切关系 length charAt(i) indexOf(“@”)

  • 如果表单项内容为空,js收到的不是null,而是空字符串。判断条件不能写 username == null,而要写username==""或username.length ==0

  • 验证出错要return false,验证无错要return true,并且 οnsubmit="return checkForm()

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script>
function checkUsername(){
var reg1=/^\D{6,}$/
var username =$("#user").val();
if(!reg1.test(username)){
$("#usertip").html("<font color='red'>格式必须是至少六位的非数字</font>");
return false;
}
// 提示OK
$("#usertip").html("<font color='green'>OK</font>")
return true;
}
function checkPassword(){
var reg2=/^\S{5,}$/
var pwd =$("#pwd").val();
if(!reg2.test(pwd)){
$("#pwdtip").html("<font color='red'>至少为5位非空格</font>");
return false;
}
$("#pwdtip").html("<font color='green'>OK</font>");
return true;
}
function checkRepwd(){
var p1=$("#pwd").val();
var p2=$("#repwd").val();
if(p1.length< 5 || p1 != p2){
$("#repwdtip").html("<font color='red'>两次密码不一致</font>");
return false;
}
$("#repwdtip").html("<font color='green'>OK</font>");
return true;
}
function checkEmail(){
var em=$("#email").val();
var regex3 = /^\w{6,}@[0-9A-Za-z]{2,}(\.[a-zA-Z]{2,3}){1,2}$/;
if(!regex3.test(em) ){
$("#emailtip").html("<font color='red'>邮箱格式有误</font>");
return false;
}
$("#emailtip").html("<font color='green'>OK</font>");
return true;
}
function checkForm(){
return checkUsername()&&checkPassword()&&checkRepwd()&&checkEmail();
}
</script>
</head>
<body>
<table id="center" border="0" cellspacing="0" cellpadding="0">
<form action="http://www.baidu.com" method="get" onsubmit="return checkForm()">
<tr>
<td>您的姓名:</td>
<td>
<input id="user" type="text" name="username" onblur="checkUsername()"/>
<div id="usertip" style="display: inline;"></div>
</td>
</tr>
<tr>
<td>输入密码:</td>
<td>
<input id="pwd" name="pwd" type="password" onblur="checkPassword()"/>
<div id="pwdtip" style="display: inline;"></div>
</td>
</tr>
<tr>
<td>再输入一遍密码:</td>
<td>
<input id="repwd" type="password" onblur="checkRepwd()"/>
<div id="repwdtip" style="display: inline;"></div>
</td>
</tr>
<tr>
<td>您的Email:</td>
<td>
<input id="email" type="text" onblur="checkEmail()"/>
<span id="emailtip"></span>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="注册" class="rb1" />
</td>
</tr>
</form>
</table>
</body>
</html>
复制
转载请注明出处或者链接地址:https://www.qianduange.cn//article/19917.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!