首页 > 编程语言 >学习python-Day48

学习python-Day48

时间:2022-08-26 22:56:23浏览次数:166  
标签:jQuery python 标签 学习 init let Day48 document fn

今日学习内容

JS获取用户输入

有两种方式:

  1. 普通数据(输入、选择)

    标签对象.value

  2. 文件数据(上传)

    标签对象.files

    标签对象.files[0]

image

JS类属性操作

let 标签对象 = document.getElementsByClassName('类名')  #获取所有样式类名
标签对象.classList	#以列表的形式存在
标签对象.classList.contains() # 判断该类名是否存在
标签对象.classList.add()  # 添加类
标签对象.classList.remove()  # 删除指定类
标签对象.classList.toggle()   # 类存在就删除,不存在就增加。

image

JS样式操作

JS是驼峰命名法,就是html样式中有-,则在这里就将-后面第一个字母大写。

1.对于没有没有横线的css属性就用: 标签对象.style.属性名
	obj.style.margin
    obj.style.width
    obj.style.left
    obj.style.position
2.对于有-的css属性
    obj.style.marginTop
    obj.style.borderLeftWidth
    obj.style.zIndex
    obj.style.fontFamily
eg:
	obj.style.backgroundColor="red"
    
    
>>let cEle = document.getElementsByTagName('p')
>>cEle[0]
>>cEle[0].style.color='red'
>>cEle[0].style.backgroundColor='green'

事件

给html标签绑定了一些额外的功能(能够触发js代码的运行)

事件 说明
onclick 当用户点击某个对象时调用的事件句柄
ondbclick 当用户双击某个对象时调用的事件句柄
onfocus 元素获得焦点 (鼠标点击输入框)
onblur 元素失去焦点。
应用场景:通常表单验证,用户离开某个输入框时
代表已经输入完后做验证。
onchange 域的内容被改变。
应用场景:通常用于表单元素,当元素内容被改变时触发。
(select联动)
onkeydown 某个键盘按键被按下。
应用场景:当用户在最后一个输入框按下回车键时,表单提交。
onkeypress 某个键盘按键被按下并松开
onkeyup 某个键盘按键被松开
onload 一张页面或一副图像完成加载
事件 说明
onmousedown 鼠标按钮被按下
onmousemove 鼠标被移动
onmouseout 鼠标从某元素移开
onmouseover 鼠标移到某元素之上
onselect 在文本框中的文本被选中时发生
onsubmit 确认按钮被点击,使用的对象是form
绑定事件的两种方式
<input type="button" value="点我" ondbclick=“func1()>
<button id="d1">点击有惊喜!</button>
<script>
	//绑定事件的方式1:提前写好函数,标签内容指定
    function func1(){
        alter(123)
    }
    //绑定事件方式2:先查找标签,然后批量绑定
    let btnEle = document.getElementById('d1')
    btnEle.onclick = function(){
        alter(321)
    }
</script>

事件中的关键字this

    let btnEle = document.getElementById('d1')
    btnEle.onclick = function (){
        alter(222)
		console.log(this)
    }
# this指代的是当前被操作的标签对象

将js执行代码放在head标签内
window.onload = function(){
    页面的js代码
}
# 等待文档加载完毕之后再执行一些js代码
JS事件案例
  1. 用户输入

    点击事件 onclick

    先判断该方法带不带功能,带功能是否存在或者去掉。
    

    image

    部分代码:
    
    <form action="">
        <p>username:
          <input id="username" type="text" name="username" placeholder="请输入你的用户名" >
        </p>
          <div id="r1"><span class="errors" style="color: red"></span></div>
    
        <p>password:
          <input id="password" type="text" name="password" placeholder="请输入你的密码">
          <div id="r2"><span class="errors" style="color: red"></span></div>
        </p>
        </form>
        <div class="c8">
    
            <input id="btn" type="submit" value="用户登录">
            <input type="reset" value="重置密码">
    	</div>
    
    <script>
          //1.查找用户提交的id
          let btn1Ele = document.getElementById('btn');
          //2.绑定单击事件
          btn1Ele.onclick = function (){
            //3.获取用户输入的用户名和密码
            let usernameVal = document.getElementById('username');
            let passwordVal = document.getElementById('password').value;
            // alert(usernameVal.value)
            // alert(passwordVal)
            //4.判断用户名和密码是否合法
            if(usernameVal.value === 'cg'){
              //5.查找获取用户名的input框下面的span标签
              let span1Ele = document.getElementsByClassName('errors')[0];
              span1Ele.innerText = '用户名不能是cg!'
    
            }
            if(passwordVal.length === 0){
              //5.查找获取密码的input框下面的span标签
              let span2Ele = document.getElementsByClassName('errors')[1];
              span2Ele.innerText = '密码不能为空!'
            }
          }
    </script>
    

    image

  2. 省市联动

    文本域变化事件 onchange

    注意:for(){}  针对字典可以传一个参数也行,但是对于数组必须要三个参数。
    
    部分代码:
     	省份:<select name="" id="province"></select>
      	市区:<select name="" id="city"></select>
    
    <script>
        let data = {
            "河北": ["廊坊", "邯郸"],
            "北京": ["朝阳区", "海淀区"],
            "山东": ["威海市", "烟台市"],
            "安徽": ["芜湖", "合肥"],
            "上海": ["浦东新区", "青浦区"],
            "深圳": ["宝安", "龙华"]
        }
        //提前查找select标签
        let proEle = document.getElementById('province');
        let cityEle = document.getElementById('city');
    
        //获取所有省份信息
        for(let pro in data){
          //创建option标签
          let opEle = document.createElement('option');
          opEle.innerText = pro
          //添加value属性
          opEle.setAttribute('value', pro);
          //将上述的option标签添加到第一个select标签内
          proEle.append(opEle);
        }
        //给省份下拉框绑定文本域的变化事件
        proEle.onchange = function (){
          cityEle.innerText = '';
          // 获取用户选择的省份
          let currentPro = this.value;
          //根据省份获取对应的市区列表信息
          let citylist = data[currentPro];
          //循环获取市信息
          for(let i=0; i<citylist.length;i++){
            //创建option标签
             let opEle = document.createElement('option');
            opEle.innerText = citylist[i]
            //添加value属性
            opEle.setAttribute('value', citylist[i]);
            //将上述的option标签添加到第二个select标签内
            cityEle.append(opEle);
          }
        }
      </script>
    

jQuery类库

  1. 兼容多浏览器的JavaScript

    极大简化JavaScript编程。它的宗旨就是:Write less, do more

  2. 优势

    JQuery的选择器用起来很方便、链式表达式(将多行变为一行,简化代码)、支持事件,样式,动画、Ajax操作、插件扩展开发。

  3. 本地导入

    使用jQuery必须要先导入,这个本质就是js文件。

    提前下载该文件并导入。

     <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
    

    image

  4. 网络CDN服务

    只要计算机能够联网就可以直接导入。

    远距离的数据交互通过海底光缆略慢,可以用CDN服务体验就近的服务器(就是将资源储存各地服务器中),快速访问资源。但是收费。

    免费CND服务>>>Bootch

jQuery基本使用

jQuery()  >>>  $()  #简写
JS与jQuery语法对比
eg:
$("#i1").html()  相当于js语法 document.getElementById("i1").innerHTML; #获取id值为i1的元素的html代码

1.js操作
>>let p1Ele = document.getElementsByTagName('p')[0]
undefined
>>p1Ele.style.color='red'
'red'
>>let p2Ele = document.getElementsByTagName('p')[1]
undefined
>>p2Ele.style.color='green'
'green'

2.jQuery操作
>>$('p').first().css('color', 'yellow')
jQuery.fn.init [p, prevObject: jQuery.fn.init(2)]
>>$('p').first().css('color', 'blue').next().css('color','yellow')
jQuery.fn.init [p, prevObject: jQuery.fn.init(1)]

image

image

jQuery选择器查找标签之后的结果与js有何区别

1.jQuery查找标签的结果是其产生对象的数组
>>$('p') 
jQuery.fn.init(2) [p, p, prevObject: jQuery.fn.init(1)]

2.js查找标签只是单独的数组
>>document.getElementsByTagName('p')
HTMLCollection(2) [p, p]

3.两者可相互转换。
	jQuery对象转标签对象用索引:
        >>$('p')[0]
        >>document.getElementsByTagName('p')[0]
    
    标签转jQuery对象要使用 $(),目的是为了使用jQuery里的方法。
        >>$(document.getElementsByTagName('p')[0])
          jQuery.fn.init [p]
        
4.jQuery对象和Dom(标签)对象相互不能彼此使用里的方法。除了先做转换。

image

选择器
id选择器:
	$("#id")
标签选择器:
	$("tagName")
class选择器:
	$(".className")
配合使用:
	$("div.c1")  // 找到有c1 class类的div标签
组合选择器:
	$("#id, .className, tagName")
层级选择器:
    x和y可以为任意选择器
    $("x y");// x的所有后代y(子子孙孙)
    $("x > y");// x的所有儿子y(儿子)
    $("x + y")// 找到所有紧挨在x后面的y
    $("x ~ y")// x之后所有的兄弟y

基本筛选器(了解)

:first  // 相当于索引[0] 第一个数值
:last   // 最后一个
:eq(index)  // 索引等于index的那个元素
:even   //匹配所有索引值为偶数的元素,从0开始计数
:odd	//匹配所有索引为奇数的元素,从0开始计数
:gt(index)	//匹配所有大于指定索引值的元素
:lt(index)	//匹配所有小于指定索引值的元素
:not(元素选择器)	//移除所有满足not条件的标签
:has(元素选择器)	//选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
>>$('ul li')
jQuery.fn.init(5) [li, li#d1, li, li, li, prevObject: jQuery.fn.init(1)]
>>$('ul li:first')  //找第一个li
jQuery.fn.init [li, prevObject: jQuery.fn.init(1)]
>>$('ul li:last')  //找最后一个li
jQuery.fn.init [li, prevObject: jQuery.fn.init(1)]
>>$('ul li:eq(1)')  //找索引值为1的li
>>$('ul:hash(".d1")')  //找ul类标签名不是d1的ul

表单筛选器

:text
:password
:file
:radio
:checkbox

:submit
:reset
:button
    
:enabled
:disabled  #禁用
:checked
:selected

eg:
    >>$('input'[type="text"])
    jQuery.fn.init {}
    >>$(':text')
    jQuery.fn.init [input.c, prevObject: jQuery.fn.init(1)]
    >>$(':password')
    jQuery.fn.init [input.c, prevObject: jQuery.fn.init(1)]
#注意:
	>>$(':checked')
    jQuery.fn.init(4) [input.c, input.c, input.c, option, prevObject: jQuery.fn.init(1)]
    >>$(':selected')
    jQuery.fn.init [option, prevObject: jQuery.fn.init(1)]
    
   ''' checked 可以找到 option中有selected的,但是selected不能找到input里面的checked
	'''但是可以用下面这种方式改变checked查找。
	>>$('input:checked')
	jQuery.fn.init(3) [input.c, input.c, input.c, prevObject: jQuery.fn.init(1)]

标签:jQuery,python,标签,学习,init,let,Day48,document,fn
From: https://www.cnblogs.com/bjyxxc/p/16629497.html

相关文章

  • Python枚举用法_Enum
    #-*-coding:utf-8-*-fromenumimportEnum,unique#1.枚举的定义#首先,定义枚举要导入enum模块。#枚举定义用class关键字,继承Enum类。#2.如果要限制定......
  • 【2022-08-26】python前端开发(五)
    python前端开发(五)JS获取值操作普通数据(输入、选择) 标签对象.value文件数据(上传) 标签对象.files 标签对象.files[0]leti1Ele=document.getElementById('d1......
  • 2022-08-26 第四小组 王星苹 学习笔记
    学习心得今天讲述了关于js文件,就是别人写好的,可以直接用的一个库。库里有方法,可以做一些小动画效果。掌握情况:还行一般学习总结:如下JS库:别人写好的JS文件,我们拿来直接......
  • 2022-08-26 卢睿 学习心得
    目录1.JQuery文档就绪函数选择器基本选择器层级选择器过滤选择器内容选择器属性选择器事件函数新建删除属性遍历操作CSS动画面试题1.JQueryJS库:别人写好的js文件,我们拿来......
  • java学习笔记015 集合
    1.集合Collection List 有序,可重复 Set 无序,不可重复Map key<==>value2.Collection接口通用的方法 boolean add(Ee) boolean addAll(Collectioncoll) int......
  • 10个python基础技巧
    下面有几个python初学者不知道的技巧,学会了可以大大提升代码的简洁性和便捷性。1、真值比较初学者经常在if语句中使用==比较符来判断表达式是否为真值#错误写法a=Tru......
  • 【Java学习Day07】标识符
    标识符Java使用的组成部分的需要名字。类名、变量名以及方法名都被称为标识符标识符的注意点所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始首字符之......
  • react18-学习笔记12-类class
    classAnimal{protectedname:string;staticage=18constructor(name:string){this.name=name}run(){return`${this.name}`......
  • react18-学习笔记13-类和接口
    interfaceRadio{switchRadio():void}interfaceBattery{checkBatteryStatus()}interfaceRadioWithBatteryextendsRadio{}classCarimplemen......
  • react18-学习笔记14-枚举(Enum)
    enumDirection{Up="Up",Down="Down",Left="Left",Right="Right"}console.log(Direction.Up)//0console.log(Direction[0])//Up//常量枚举可以......