首页 > 编程语言 >JavaScript与jQuery基础入门到放弃

JavaScript与jQuery基础入门到放弃

时间:2022-12-06 22:36:11浏览次数:44  
标签:jQuery 入门 对象 标签 JavaScript value getElementById let document

JavaScript与jQuery基础入门到放弃

引言:
- BOM 操作
- DOM 操作
- jQuery 类库

BOM 操作

BOM (Browser Object Model) 指浏览器对象模型,使 JavaScript有能力与浏览器交互

window.open() // 打开浏览器空页面
window.open('http://www.baidu.com', '','width=800px, left=200px')	// 打开指定网站的页面,并指定打开大小

window.close()	// 关闭当前浏览器窗口

navigator.userAgent	// 标识自己是一个浏览器

history.forward()	// 前进一页

history.back()  // 后退一页

window.location.href	// 获取当前网页所在网页地址,可以加赋值符号和网址跳转

window.locaton.reload()	// 刷新当前页面

alert('警告⚠️')	//	警告框

confirm('提示是否确认') // 确认框

Prompt('你想输入什么')	// 提示框

// 计时器相关操作(重要)
	let t = setTimeout(showMsg, 3000)  // 3000毫秒后执行函数
		clearTimeout(t)	// 取消任务
	
	s = setInterval(func, 3000)  // 每隔3000毫秒执行一次
	clearInterval(s) // 取消任务

DOM 操作

DOM (Document Object Model) 指文档对象模型,通过它可以访问HTML文档的所有元素
既然DOM操作时通过js代码来操作标签,所以需要先学习如何查找标签之后才能给标签绑定一些js代码(DOM 操作)

document.getElementById('d1')  // 通过标签id查找返回便签对象本身
document.getElementsByClassName('text')  // 通过标签的class名字查找,结果是数组,里面含有多个标签对象可以使用数组取值
document.getElementsByTagName('p')  // 通过标签查找,返回数组,可以使用索引取值

// 基于当前查找的标签查找 document.getElementById('div1')

document.getElementById('div1').parentElement	// 父节点的标签元素

document.getElementByid('div1').children  // 所有的子标签

document.getElementByid('div1').firstElementChild // 第一个子标签元素

document.getElementByid('div1').lastElementChild  // 最后一个子标签元素

document.getElementByid('div1').nextElementSibling // 下一个兄弟标签元素

document.getElementByid('div1').previousElementSibling // 上一个兄弟标签元素

操作节点

// 创建一个a标签
let aEle = document.createElement('a')
// js代码对标签属性做增删改查
// .href 的方式只能添加默认属性
aEle.href = 'http://www.baidu.com'
// setAttribute()兼容默认属性和自定义属性
aEle.setAttribute('age',18)
// getAttribute()查看属性
aEle.getAttribute('age')
// removeAttribute() 移除属性
aEle.removeAttribute('age')

// js代码操作标签文本
aEle.innerText = '这是a标签的文本'

// js代码查找div标签并将a是追加到div内部
let divEle = document.getElementsByTagName('div')[0]
divEle.appendChild(aEle)

.innerText  		 获取标签内部所有的文本内容
divEle.innerText = '不错'  替换/设置标签内部的文本(不识别标签语法)

.innerHTML			获取标签内部所有的标签包含文本
divEle.innerHTML = '<h1>很不错</h1>'  替换/设置标签内部的文本(识别标签语法)

获取值操作

使用.value的方式可以获取用户输入或者选择的值

1. 针对用户输入的和用户选择的标签
	标签对象.value

2. 针对用户上传的文件数据
	标签对象.files  fileList [文件对象,文件对象,文件对象]
	标签对象.files[0] 文件对象

var iEle = document.getElementById("i1");
console.log(iEle.value);
var sEle = document.getElementById("s1");
console.log(sEle.value);
var tEle = document.getElementById("t1");
console.log(tEle.value);

class与css操作

1. js操作标签css样式
	标签对象.style.属性名(下划线没有 变成驼峰体)
2. js操作标签css属性
	标签对象.classList.add()
	标签对象.classList.contains()
	标签对象.classList.remove()
	标签对象.classList.toggle()

事件

事件可以理解为通过js代码给html标签绑定一些自定义的功能

常见事件
	onclick 当用户点击某个对象时调用的事件句柄
	onfocus 元素获得焦点
	onblur	元素失去焦点
	onchange	域的内容被改变
	
绑定事件的多种方式
<!--绑定事件的方式1-->
	<button onclick="showMsg()">点击</button>
	<!--绑定事件的方式2-->
	<input type="button" value="go" id="d1">
		<script>
			function showMsg() {
				let msg = prompt('确定这样吗?')
				console.log(msg)
			}
			let inputEle = document.getElementById('d1')
			inputEle.onclick = function () {
				alert('谁点我!')
			}
		</script>
<!--
事件函数中的this关键字
	this指代的就是当前被操作的标签对象本身
	如果事件函数内有多成嵌套那么最好开始就使用变量存储防止后续变化
-->


// 输入框焦点和失去焦点案例
    <input type="text" value="游戏机" id="d1">
    <script>
        let inputEle = document.getElementById('d1')
        // onfocus 焦点
        inputEle.onfocus = function () {
            this.value = ''
        }
        // onblur 失去焦点
        inputEle.onblur = function () {
            this.value = '再见'
        }
    </script>



// 登录框提示信息焦点和失去焦点
    <p>username:
        <input type="text" id="d1">
        <span style="color: red"></span>
    </p>
<!--    <button id="suBtn">提交</button>-->
    <p>password:
        <input type="text" id="d2">
        <span style="color: red;"></span>
    </p>
    <button id="suBtn">提交</button>

<script>
    // 1. 查找提交按钮的标签
    subEle = document.getElementById('suBtn')
    // 2. 给按钮标签绑定点击事件 onclick 当被点击时
    subEle.onclick = function () {
        // 3. 查找获取用户输入的标签并获取数据
        let userNameEle = document.getElementById('d1')
        let passWordEle = document.getElementById('d2')
        // 清空输入框
        userNameEle.onfocus = function () {
            this.value = ''
            userNameEle.nextElementSibling.innerText = ''
        }
        passWordEle.onfocus = function () {
            this.value = ''
            userNameEle.nextElementSibling.innerText = ''
        }
        if (userNameEle.value === 'xiaochen') {
            userNameEle.nextElementSibling.innerText = `${userNameEle.value}你已经被拉黑`
        }
        if (passWordEle.value === '123') {
            passWordEle.nextElementSibling.innerText = `${userNameEle.value}密码不能是${passWordEle.value}'`
        }
    }

</script>



// 省市联动
省
<select name="" id="d1">

</select>

市
<select name="" id="d2">

</select>

<script>
    let data = {
        "河北": ["廊坊市", "邯郸市"],
        "北京": ["朝阳区", "海淀区"],
        "山东": ["威海市", "烟台市"],
        "安徽": ["芜湖市", "合肥市"],
        "上海": ["浦东新区", "静安区"]
    }


    // 提前查找好省市的select标签
        let proSeEle = document.getElementById('d1');
        let citySeEle = document.getElementById('d2');
        // 获取所有省的信息
        for (let pro in data) {
            // 创建option标签
            let proOpEle = document.createElement('option');
            // 添加文及属性
            proOpEle.innerText = pro;
            proOpEle.setAttribute('value', pro);
            // 将创建好的option标签添加到省下拉框中
            proSeEle.appendChild(proOpEle)
        }
        // 给省标签绑定文本域变化事件 onchange
        proSeEle.onchange = function () {
            citySeEle.innerHTML = ''; // 每次操作市之前清空
            // 获取用户选择的省信息,根据省获取市信息
            let targetProData = this.value;
            let cityDataList = data[targetProData];
            //循环获取每一个市信息,创建option标签,添加到市下拉框中
            for (let i = 0; i < cityDataList.length; i++) {
                let cityOpEle = document.createElement('option');
                cityOpEle.innerText = cityDataList[i];
                cityOpEle.setAttribute('value', cityDataList[i]);
                citySeEle.appendChild(cityOpEle);
            }
        }


</script>

jQuery类库

概念

官方愿景:Write less,do more
1.加载速度快
2.选择器更多更好用
3.一行代码走天下
4.支持ajax请求(重点)
5.兼容多浏览器

准备工作

	1.下载核心文件到本地引入(没有网络也可以使用)
    	<script src="jQuery3.6.js"></script>
 	2.CDN网络资源加载(必须有网络才可以使用)
    	https://www.bootcdn.cn/
    https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js
    https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.min.js

jQuery导入之后需要使用关键字才可以使用
	默认的关键字就是jQuery但是不好输入 官方简写为:$

js代码与jQuery代码对比
	let pEle = document.getElementsByTagName('p')[0]
	undefined
	pEle.style.color = 'red'
	pEle.nextElementSibling.style.color = 'green'
	
	
	jQuery
	$('p').first().css('color','yellow').next().css('color','blue')

标签对象与jQuery对象

  1. 不同的对象能调用的方法是不同的
    在编写代码的时候一定要清楚手上的是什么对象
  2. 两者可以相互转换
    标签对象转jQuery对象
    $(标签对象)
    jQuery对象转标签对象
    jQuery对象[0]

标签:jQuery,入门,对象,标签,JavaScript,value,getElementById,let,document
From: https://www.cnblogs.com/wesleyUP/p/16961553.html

相关文章

  • 前端之jQuery
    jQueryIE浏览器:前端针对IE有时候需要单独写一份代码jQuery的宗旨是:Writeless,domore写的更少做的更多加载速度快选择器更对更好用链式表达式:jQuery的链式操作可......
  • JavaScript——输入框、计时器
    JavaScript——输入框、计时器<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> </head> <bodyonload="get_time()"> <!--<formaction......
  • BOM与DOM、jQuery类库
    BOM与DOM、jQuery类库目录BOM与DOM、jQuery类库Window对象BOM操作DOM操作操作节点获取值操作class与css操作事件jQuery类库标签对象与jQuery对象Window对象window对象表......
  • 前端之js之BOM操作-DOM操作-jQuery类库
    目录前端之js之BOM操作-DOM操作-jQuery类库今日内容概要今日内容详细BOM操作DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuer......
  • BOM操作、DOM操作与jQuery类库
    昨日内容回顾JS基础介绍JavaScript是一门前端语言,只是长得像Java,实际与Java无关。JS基本使用变量与常量定义变量使用var或let关键字,定义常量使用const关键字,常......
  • 前端开发:5、BOM操作、DOM操作、jQuery类库
    JavaScript目录JavaScript一、BOM操作1、window对象2、navigator对象3、screen对象4、history对象5、location对象6、弹出窗7、计时相关二、DOM操作1、查找标签2、操作......
  • BOM操作、DOM操作、查找标签、操作节点、获取值操作、class与css操作、事件、事件实战
    目录BOM操作DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuery对象BOM操作BOM(BrowserObjectModel)是指浏览器对象模型,它使......
  • BOM操作、DOM操作、查找标签、操作节点、获取值操作、class与css操作、事件、事件实战
    目录BOM操作与DOM操作BOM(浏览器对象模型)DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuery对象BOM操作与DOM操作BOM(Browser......
  • JavaScript基础2
    今日内容概要BOM操作DOM操作jQuery类库今日内容详细BOM操作window对象BOM(BrowserObjectModel)是指浏览器对象模型它使JavaScript有能力与浏览器进行'对话'W......
  • web前端开发: jQuery类库
    jQuery类库一、jQuery简介1.特点加载速度更快一款轻量级的JS框架。jQuery核心js文件才几十kb,不会影响页面加载速度。选择器更多更好用丰富的DOM选择器,jQuery的......