javascript的基础交互详解

目录
  • 一.元素的获取方式
    • 文档下获取
      • id获取
      • 类名获取(className)
      • 标签名(tagName)
    • 自定义获取范围
  • 二.鼠标事件
    • 区别:
  • 三.元素操作
    • 1.操作元素内容
      • 操作表单元素内容
      • 操作普通闭合标签
    • 2.操作元素属性
  • 总结

一.元素的获取方式

文档下获取

只要在文档中符合都会获取到

id获取

  • 基本语法:document.getElementById(id值);

    • document:文档,表示获取的范围
    • get:获取 Element:元素 By:通过..
    • 返回的是元素对象
  • 返回值:获取到了返回具体的元素,获取不到返回null
  • 用过id获取只能在document下获取,不能自定义获取范围
  var box = document.getElementById("box1");
        console.log(box);//<div id="box1">我是DIV</div>
        var box = document.getElementById("box2");
        console.log(box); //null
        var myH2 = document.getElementById("my-h2");
        console.log(myH2);

类名获取(className)

  • 基本语法:document.getElementsByClassName(类名值);

    • document:文档,表示获取的范围
    • get:获取 Elements:元素(复数) By:通过..
    • 得到的元素对象是动态的伪数组
    • 可以通过遍历的形式打印出来
  • 返回值:获取到了:返回一个元素集合 HTMLCollection,这个集合由索引和值组成,0对应第一项,1对应第二项依次类推,天生自带length属性,最后一项的索引是集合.length -1; 获取不到 返回一个空集合 长度是0
  • length属性 集合的长度 或 集合中元素的个数
    • 集合.length;
  • 获取集合中具体元素
    • 集合[索引]
 var tests = document.getElementsByClassName("test");
        console.log(tests);
        console.log(tests.length); //获取长度
        // 直接输出到控制台
        console.log(tests[0]);
        console.log(tests[1]);
        console.log(tests[tests.length - 1]);
        // 存储起来
        var oDiv = tests[0];
        var oH2 = tests[1];
        console.log(oDiv, oH2);
        var test1 = document.getElementsByClassName("test1");
        console.log(test1, test1.length);
        console.log(test1[0]);
        console.log(test1[1]); //没有这个小标或索引 相当于集合中这个位置还没有初始化,或未定义 返回undefined
        var hello = document.getElementsByClassName("hello");
        console.log(hello, hello.length);
        console.log(hello[0]); //undefined

标签名(tagName)

  • 基本语法:document.getElementsByTagName(标签名);

    • document:文档,表示获取的范围
    • get:获取 Elements:元素(复数) By:通过..
  • 返回值:获取到了:返回一个元素集合 HTMLCollection,这个集合由索引和值组成,0对应第一项,1对应第二项依次类推,天生自带length属性,最后一项的索引是集合.length -1; 获取不到 返回一个空集合 长度是0
  • length属性 集合的长度 或 集合中元素的个数
    • 集合.length;
  • 获取集合中具体元素
    • 集合[索引]
   var oLis = document.getElementsByTagName("li");
        console.log(oLis);
        // 获取长度
        console.log(oLis.length);
        // 获取具体的元素
        console.log(oLis[0]);
        console.log(oLis[1]);
        console.log(oLis[2]);
        console.log(oLis[oLis.length - 1]);

自定义获取范围

父级元素:必须是具体的元素

  • 父级元素.getElementsByClassName(类名值);
  • 父级元素.getElementsByTagName(标签名);
// 获取ol下的li
        // 获取父级元素
        var wrap = document.getElementById("wrap");
        console.log(wrap);
        // var oLis = wrap.getElementsByClassName("test");
        var oLis = wrap.getElementsByTagName("li");
        console.log(oLis);
        console.log(oLis.length);
        console.log(oLis[0]);
        console.log(oLis[1]);
        console.log(oLis[oLis.length - 1]);
        // 获取ul下的li
        // 获取父级
        var wrap1 = document.getElementsByClassName("wrap");
        console.log(wrap1);
        console.log(wrap1[0]);
        console.log(wrap1[1]);
        // var ullis = wrap1[1].getElementsByClassName("test");
        var ullis = wrap1[1].getElementsByTagName("li");
        console.log(ullis);
        console.log(ullis.length);
        console.log(ullis[0]);
        console.log(ullis[1]);
        console.log(ullis[ullis.length - 1]);

二.鼠标事件

绑定事件也要是具体的元素,不能够直接去操作集合

  • onclick 单击事件
  • ondblclick 双击事件
  • onmousedown 鼠标按下
  • onmouseup 鼠标抬起
  • onmousemove 鼠标移动
  • oncontextmenu 鼠标右击
  • onmouseover 鼠标移入
  • onmouseout 鼠标移出
  • onmouseenter 鼠标进入
  • onmouseleave 鼠标离开
  <div id="box"></div>
    <ul id="myUl">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
   var box = document.getElementById("box");
   console.log(box);
   var myUl = document.getElementById("myUl")
   console.log(myUl);
   var oLis = myUl.getElementsByTagName("li");
   console.log(oLis);
            // - onclick  单击事件
            box.onclick = function() {
                console.log("单击");
            }
            // - ondblclick  双击事件
            oLis[0].ondblclick = function() {
                console.log("双击事件");
            }
            // - onmousedown 鼠标按下
            oLis[1].onmousedown = function() {
                console.log("鼠标按下");
            }
            // - onmouseup  鼠标抬起
            oLis[1].onmouseup = function() {
                console.log("鼠标抬起");
            }
            // - onmousemove 鼠标移动
            oLis[1].onmousemove= function() {
                console.log("鼠标移动");
            }
            // - oncontextmenu 鼠标右击
            oLis[2].oncontextmenu = function() {
                console.log("鼠标右击");
            }
            // - onmouseover 鼠标移入
            myUl.onmouseover = function() {
                console.log("鼠标移入");
            }
            // - onmouseout 鼠标移出
            myUl.onmouseout = function() {
                console.log("鼠标移出");
            }
            // - onmouseenter  鼠标进入
            myUl.onmouseenter = function() {
                console.log("鼠标进入");
            }
            // - onmouseleave  鼠标离开
            myUl.onmouseleave = function() {
                console.log("鼠标离开");
            }
    </script>
  • onmouseover 鼠标移入
  • onmouseout 鼠标移出
  • onmouseenter 鼠标进入
  • onmouseleave 鼠标离开

区别:

onmouseover及onmouseout不仅会触发自身这个事件对应的事情还会将父级这个事件对应做的事情再次触发

onmouseenter及onmouseleave:只会触发自身这个事件对应做的事情,不会触发父级这个事件对应做的事情

三.元素操作

原则:给值就是设置,不给值就是获取

元素的所有操作都必须是具体的元素,集合不能直接操作

1.操作元素内容

从元素中获取到的内容都是字符串,没有内容获取到的是空字符串

操作表单元素内容

  • 设置:表单元素.value = 值;
  • 获取:表单元素.value;

// 多次赋值后边覆盖前边的

// 获取元素
var inputs = document.getElementsByTagName("input");
var btn = document.getElementsByTagName("button")[0];
console.log(inputs, btn);
// 将两个输入框的和展示到第三个输入框
// 绑定事件
// 事件每点击一次 函数中代码就重新执行一次
btn.onclick = function () { //做什么事情
    // 获取两个输入框的值
    var oneVal = inputs[0].value;
    var twoVal = inputs[1].value;
    console.log(oneVal, twoVal);
    // 遇到字符串表示拼接 先转为数字
    var total = parseFloat(oneVal) + parseFloat(twoVal);
    console.log(total);
    // 将和设置给第三个输入框
    inputs[2].value = total;
}

操作普通闭合标签

  • 设置:表单元素.innerText/innHTML = 值;
  • 获取:表单元素.innerText/innHTML;
  • 区别:innerText只能识别文本,而innHTML既可以识别文本,又可以识别标签
var div = document.getElementsByTagName("div")[0];
var h2 = document.getElementsByTagName("h2")[0];
var p = document.getElementsByTagName("p")[0];
console.log(div, h2,p);
// 设置:表单元素.innerText/innHTML = 值;
// 后边设置的覆盖前边的
// div.innerText = "我是div";
// div.innerText = "<h6>我是div</h6>";
// div.innerHTML = "我是div";
div.innerHTML = "<h6><a href='https://www.baidu.com'>我是div</a></h6>";
h2.innerHTML = "我是H2";
// 获取:表单元素.innerText/innHTML;
console.log(div.innerText);//我是div
console.log(div.innerHTML);//<h6><a href="https://www.baidu.com">我是div</a></h6>
console.log(p.innerText);
console.log(p.innerHTML);

2.操作元素属性

操作结构上天生自带的属性

  • 设置:元素.属性 = 值; 获取不到返回空字符串
  • 获取:元素.属性;

元素.id = 值;/元素.id;
元素.className = 值;/元素.className;
元素.title = 值;/元素.title;
...

// 获取元素
var div =  document.getElementsByTagName("div")[0];
// 设置
div.className = "myBox";
div.title = "我是div";
// 获取
console.log(div.id);
console.log(div.className);
console.log(div.title);

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Javascript与flash交互通信基础教程

    下面是一些在Flash和使用Javascript的HTML文件直接通信的示例,每个示例都有简略的步骤 本文讨论了3种基本的Flash/Javascript通信方式: Javascript 到 Flash的通信----使用Flash播放器的javascript方法 Flash 到 Javascript的通信----使用Flash的fscommand Flash 到 Flash的通信----------使用本地连接对象或综合上2种技术 并不是所有的浏览器都很重视脚本.为了和Flash播放器通信,浏览

  • Javascript基础知识中关于内置对象的知识

    目录 1.内置对象介绍 1.1 Math对象 1.2 Math中的方法 1.3 Date对象 2.Date中的方法 3.经典案例:倒计时效果: 4.Array数组对象 4.1 数组的创建 4.2 数组中的常用方法 5.字符串String 1.内置对象介绍 JavaScript组成: ECMAScript | DOM | BOM ECMAScript: 变量 , 函数, 数据类型 ,流程控制,内置对象 js中的对象: 自定义对象 , 内置对象 , 浏览器对象(不属于ECMAScript) 1.1

  • Javascript基础:运算符与流程控制详解

    目录 1. 运算符(操作符) 1.1 算数运算符 1.2 递增和递减运算符 1.3 比较运算符 1.4 逻辑运算符 1.5 赋值运算符 1.6 运算符优先级 2. 流程控制 2.1 if 的语法结构 2.2 if else双分支语句 2.3 if else if语句(多选1) 2.4 三元表达式 2.5 switch分支流程控制 总结 1. 运算符(操作符) 「运算符」是用于实现赋值.比较和执行算数运算等功能的符号.常用运算符分类如下 算数运算符 递增和递减运算符 比较运算符 逻辑运算符 赋值运

  • vue基础之使用get、post、jsonp实现交互功能示例

    本文实例讲述了vue基础之使用get.post.jsonp实现交互功能.分享给大家供大家参考,具体如下: 一.如果vue想做交互,引入: vue-resouce 二.get方式 1.get获取一个普通文本数据: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style>

  • Javascript基础知识详解

    目录 变量 数据类型 扩展点 总结 变量 基本语法 var age=10;//声明一个名称为age的变量,并且为它赋值,称为变量的初始化 var是一个JS关键字,用来声明变量.我们也可以按照其他编程语言的思路,给变量进行更新,并且可以同时声明多个变量,此时只需要使用一个var 多个变量名之间使用英文逗号来隔开. 命名规范 由字母(A-Za-z).数字(0-9).下划线(_).美元符号( $ )组成,如:usrAge, num01, _name 严格区分大小写.var app; 和var App;

  • javascript的基础交互详解

    目录 一.元素的获取方式 文档下获取 id获取 类名获取(className) 标签名(tagName) 自定义获取范围 二.鼠标事件 区别: 三.元素操作 1.操作元素内容 操作表单元素内容 操作普通闭合标签 2.操作元素属性 总结 一.元素的获取方式 文档下获取 只要在文档中符合都会获取到 id获取 基本语法:document.getElementById(id值); document:文档,表示获取的范围 get:获取 Element:元素 By:通过.. 返回的是元素对象 返回值:获取到

  • IOS ObjectC与javascript交互详解及实现代码

    IOS OC与js交互详解 JS注入 : 把JS代码有OC注入到网页 JS注入又叫做OC和JS的交互 OC和JS的交互需要一个桥梁(中介),这个桥梁就是UIWebView的代理方法 网页加载初始内容 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webView; @end -

  • 计算机网络编程MQTT协议基础原理详解

    目录 什么是 MQTT 协议 MQTT 基础 发布 - 订阅模式 可拓展性 消息过滤 基于主题的过滤 基于内容的过滤 基于类型的过滤 MQTT 与消息队列的区别 MQTT 重要概念 MQTT client MQTT broker MQTT Connection 消息报文 CONNECT CONNACK 消息类型 发布 订阅 确认消息 退订 确认退订 聊聊 Topic 通配符 单级通配符 多级通配符 之前有位读者给我留言说想要了解一下什么是 MQTT 协议,顺便还把我夸了一把,有点不好意思啦. 那

  • Android WebView基础应用详解

    目录 一.WebView的基础配置 二.WebView支持播放音乐 三.WebView支持视频播放 四.WebChromeClient 五.WebViewClient 1.重定向问题 2.实现预加载 3.增加错误页面展示限制 4.解决页面白屏问题 附GitHub源码:WebViewExplore 一.WebView的基础配置 WebSettings ws = getSettings(); ws.setBuiltInZoomControls(true);// 隐藏缩放按钮 ws.setLayout

  • 基于JavaScript表单脚本(详解)

    什么是表单? 一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等. 表单按钮:包括提交按钮.复位按钮和一般按钮:用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作. JavaScript与表单间的关系:JS最初的应用就是用于分担服务器处理表单的责任,打破依赖服务器的局面,尽管目前web和jav

  • 基于JS脚本语言的基础语法详解

    JS脚本语言的基础语法:输出语法  alert("警告!");  confirm("确定吗?");   prompt("请输入密码");为弱类型语言: 开始时要嵌入JS代码:<script type="text/javascript"></script>: 关于写程序是需注意的基本语法: 1.所有的字符全都是英文半角的: 2.大部分情况下每条语句结束后要加分号: 3.每一块代码结束后加换行:4.程序前呼

  • JavaScript里 ==与===区别详解

    1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较"转化成同一类型后的值"看"值"是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进行"值"比较,两者结果一样 2.对于Array,Object等高级类型,==和===是没有区别的 进行"指针地址"比较 3.基础类型与高级类型,==和===是有区别的 1)对于==,将高级转化为基础类型,进行"值&quo

  • Docker基础命令详解

    docker基本概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上. Docker是一个重新定义了程序开发测试.交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是docker提出的"Build once,Run anywhere" 创建镜像 创建镜像的方法有三种: 基于已有的容器创建 基于本地模板导入 基于dockerfile 基于已有的容器创建 主要使用docker

  • vue快捷键与基础指令详解

    v-bind可以简写成   : <img src="{{url}}">→<img :src="url" :width="50px"> v-on:click可以写成@click <button @click="up()"></button> v-if实例  可以通过对对象操作条件来实现想要展示的效果 <!DOCTYPE html> <html> <he

  • kotlin 官方学习教程之基础语法详解

    kotlin 官方学习教程之基础语法详解 Google 在今天的举行了 I/O 大会,大会主要主要展示内有容 Android O(Android 8.0)系统.Google Assistant 语音助手.Google 智能音箱.人工智能.机器学习.虚拟现实等.作为一个 Android 开发者,我关心的当然是 Android O(Android 8.0)系统了,那么关于 Android O 系统的一个重要消息是全面支持 Kotlin 编程语言,使得 Kotlin 成为了 Android 开发的官方

随机推荐