javascriptWebStageDay04

本文介绍了JavaScript的基础操作,包括元素属性控制、正则表达式使用及事件处理等。通过四个具体案例,如表单验证、隔行换色、全选功能实现和省市联动效果,详细展示了JS编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:function定义的函数名 不要使用关键字!

技术:
1. 控制元素的
value属性
obj.value=”赋值”
src属性
obj.src=”赋值”
样式属性
obj.style.css属性=”css的属性值”
标签体内容
obj.innerHTML=”XXXXX”

  1. 了解 正则表达式(查询API或百度)
    落实js语言
    var reg=/^[a-z0-9_-]{3,16}$/

    提供方法 test()
        reg.test("你自己的字符串")  返回boolean值
    
  2. 事件:
    必须掌握:
    onclick:单击事件
    onsubmit:表单提交事件
    onload:页面加载成功事件
    onfocus:焦点获取
    onblur:丢失焦点

    需要了解:
    跟鼠标相关的
    onclick:单击
    ondblclick:双击
    onmouseover:鼠标进入 悬停事件
    onmouseout:鼠标离开
    onmousemove:鼠标移动
    onmousedown:鼠标按下
    onmouseup:鼠标弹起

    跟键盘相关的
        onkeyup:按键弹起
        onkeydown:按键按下
        onkeypress:按键按下并弹起
    
        onkeydown--->onkeypress-->onkeyup
    跟表单相关:
        onsubmit:表单提交
        onreset:重置事件
        onchange:改变事件
    
  3. DOM 文档对象模型
    节点:
    document节点
    标签节点
    属性节点
    文本节点
    获取节点:
    document.getElementById(“x”);//获取元素的id属性为x标签元素 一个元素
    document.getElementsByTagName(“y”);//获取元素的名字为y 元素数组 多个元素
    document.getElementsByClassName(“z”);//获取元素的class属性为 z的元素 多个元素
    document.getElementsByName(“w”);//获取元素的name属性为w的元素 多个元素
    操作属性:
    value:控制值
    src:控制路径
    checked属性:选中状态的
    样式的:
    style.css样式名
    innerHTML:操作标签体内容

    直接获取  如果赋值 就是修改
    

    也提供了创建元素api 了解

    想要添加新元素
    obj.innerHTML=”添加的元素”

案例一: 表单升级
需求:
当你点击注册按钮,开始对于用户名和密码格式验证
验证失败 在输入框后面给出提示信息 不要立即返回 一次性走完验证
更为复杂的格式验证
学习:
控制标签体内容
了解 正则表达式
步骤分析:
1.创建表单页面(id必须设置,方便查询;非text类型要设置value,方便操作)

2.事件:
表单提交事件
onsubmit: 必须有boolean返回值

3.编写函数 checkForm
    定义标识符
        var flag=true;

    获取用户密码输入框值
    判断采用正则表达式
    判断没有通过:
        flag=false;//出问题
        在输入框后方span元素中改变标签体内容
    判断通过了
        继续走

    return flag;

案例二: 隔行换色
需求:
在页面加载成功 将表单一行行的背景颜色做出斑马线 奇数行一个颜色 偶数行一个颜色
学习:
obj.style.背景颜色属性

    获取多个元素
        var 对象数组=document.getElementsByTagName("标签名"); 获取所有的标签名为参数的对象 
        for(var i=0;i<对象数组.length;i++){
            var 对象=数组对象[i];
        }

    步骤分析:
1.事件:
    onload 页面加载成功事件
    改变背景颜色

2.编写改变颜色的函数
    获取tr的数组 document.getElementsByTagName("标签名")
    遍历数组 一个个改变背景颜色
    for(var i=0;.......){
        //判断i的值
        //对i进行取模运算
        //根据奇偶性 对应改变背景颜色
    }

注意:
    css中语法格式:
        <style type="text/css">
            span{
                color: red; //文字颜色
                background-color: antiquewhite; //背景颜色
                background-image: xx;   //背景图片
            }
        </style>

    js中语法格式:
        xx.bgColor="#0f0";//元素属性,设置背景颜色
        xx.style.backgroundColor="cornflowerblue";//元素css样式,设置背景颜色
        xx.style.backgroundImage="xxx";//元素css样式,设置背景颜色

案例三: 全选全不选
需求:
点击表头复选框 将下方的复选框的状态跟表头复选框状态保持一致

学习:
    checked:
        true标识选中  false 标识 不选中
    document.getElementsByClassName("y")// 获取所有标签 只要有y的class属性

    this关键字
    代表是当前对象

    步骤分析:
1.为表头复选框绑定点击事件
2.函数中:
    获取自己状态
    获取下方所有的复选框 
    遍历数组
    挨个将他们状态修改为表头复选框状态

案例四: 省市联动
需求:
当我去改变省份的选择项,要求后面城市的下拉选择框中 可选城市对应的省份下的城市
学习:
js中的数组
onchange
改变元素标签体内容
步骤分析:
1.为省份下拉选择框 绑定 onchange改变事件
2.获取当前选中的省份的值
值可以当做索引 去二维数组中 获取对应的城市列表的数组
遍历城市列表放入到城市下拉选择框
将名字和option标签合起来—-拼接字符串 ““+”郑州市”+””

数组:
java:
String[] ss=new String[]{“1”,”123”};
ss.length

js:
    1.
        var arr1=new Array()//创建空数组
    2.
        var arr2=new Array(n)//创建长度为n的数组
    3.
        var arr2=new Array(ele1,ele2,ele3...)//创建直接初始化好元素的数组

    长度:---------------------------------->重点
        数组.length;
        获取元素
        数组对象[索引]
    注意:--------------------------------->重点
        js数组长度是可变的
        元素的类型没有限制 


数组的方法:
    头部:
        添加元素
            unshift("元素")
        和移除元素
            shift();
    尾部:
        添加元素
            push() 压入
        和移除元素
            pop() 弹出


    reverse() 反转
    sort();

引用类型:

array  数组

    在js中  原始类型的 string number  boolean 对应的包装类型
    原始类型 string number  boolean 也可以直接调用  包装类型的方法
String:
    var s="asdasd";
    var s1=new String("asdasd");

    java的方法基本一致



Number:
    var n=1.0;
    var n1=new Number(1.0)
Boolean:
    var b=true;
    var n1=new Boolean(true)

Date:
    跟java使用方式 基本一致

RegExp:正则 了解
    直接量写法
    var reg=/表达式/

    var reg=new RegExp(表达式)

    test()方法 验证 你的字符串格式是否符合

Math:数学
    跟java一模一样

全局函数: 内置函数  不属于任何一个对象 就是内置

    window对象的方法:(可省略window)

    尝试转换类:(重点)
        parseInt()//尝试将字符串转换成 整数
        parseFloat()//尝试将字符串转换成浮点数 小数

    强制转换
        Number(); 强制转换成数值

    进行编码
        encodeURI()//将中文转化为特殊编码
        decodeURI()//将encodeURI编码后的解码回中文

    eval()//(了解)
        就是解析你的js代码字符串 执行
        转换json格式

小例子
java
string s1=”字符串”;
String s2=new String(“字符串”)

    s1.split()
    s2.split()
内容概要:本文档详细介绍了基于多车协作建图和改进人工势场法的路径规划算法的实现。首先,通过烟花算法优化多车局部地图的融合,解决了多车协作建图的问题。其次,提出了改进的人工势场法,解决了传统APF存在的目标不可达、振荡和局部最小值等问题。接着,通过动态势场方法考虑了车辆的相对速度,进一步提高了路径规划的安全性和效率。最后,通过完整的系统集成和仿真实验,验证了所提方法的有效性。文档还包含了详细的代码实现、关键算法解释及性能对比分析,展示了改进方法在最小安全距离、计算时间和行驶总距离等方面的优越性。 适合人群:具备一定编程基础,对自动驾驶、机器人路径规划及优化算法感兴趣的科研人员和工程师。 使用场景及目标:①研究多车协作建图技术,理解烟花算法在地图融合中的应用;②掌握改进人工势场法的核心思想和技术细节;③分析动态势场方法在处理复杂环境下的优势;④通过实验验证和性能对比,评估不同算法的效果,为实际应用提供参考。 其他说明:此资源不仅提供了详细的代码实现和注释,还涵盖了完整的理论推导和实验验证过程,适合深入学习和研究。文档中的代码严格遵循论文中的算法描述和参数设置,并提供了丰富的可视化工具帮助理解和分析实验结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值