js的组成

    ECMAScript:JS的语法
    DOM:页面文档对象模型
    BOM:浏览器对象模型
    web APIs
    是浏览器提供的一套操作浏览器功能和页面元素的API
    主要学习的是DOM和BOM
    web APIs是JS独有的
    主要学习页面交互功能
    API:应用程序编程接口
    // 获取元素
var p1 = document.getElementById("text")
console.log(p1);
console.dir(text); // 遍历出每个内容
var p2 = document.getElementsByTagName("li")
for (var i = 0; i < p2.length; i++) {
console.log(p2[i]); }
console.log(p2); // 获取某个特定的元素
var nav = document.getElementById("nav")
var navlis = nav.getElementsByTagName("li")
console.log(navlis); var box = document.getElementsByClassName("box")
console.log(box); // queryselect 返回的是指定选择器的第一个元素 切记 里面的选择器需要加符号
var firstbox = document.querySelector(".box")
console.log(firstbox);
var nav2 = document.querySelector("#box2")
console.log(nav2);
var li2 = document.querySelector("li")
console.log(li2); // 获取到姓名后存储到变量中去
var unsme = prompt("请输入您的姓名")
alert("您的姓名是" + unsme) // 获取body元素
var bodylie = document.body
console.log(bodylie); // 获取HTML元素
var HTMLles = document.documentElement;
console.log(HTMLles);

DOM:文档对象模型:处理可扩展标记语言的标准编程接口

    文档:一个页面就是一个文档,DOM中使用document表示
    元素:页面里面所有标签都是元素,DOM中使用element表示
    节点:网页中所有的内容都是节点,DOM中使用node表示
    语法
    var element = document.getElementById(id);
    返回一个匹配到 ID 的 DOM Element 对象。若在当前 Document 下没有找到,则返回 null。
    console.dir()可以打印我们返回的元素对象 更好的查看里面的属性和方法
    <p id="text">sss</p>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<ul id="nav">
<li>12</li>
<li>23</li>
<li>34</li>
<li>45</li>
<li>56</li>
</ul>
<div class="box">45678</div>
<div id="box2">22222</div>
var btn1 = document.getElementById("btn")
btn1.onclick = function () {
console.log("ok");
} // 获取事件源
var div = document.querySelector("div")
// 绑定事件 注册事件
// div.onclick
// 添加事件处理程序
div.onclick = function () {
console.log("hhhhh"); }
 

事件基础

    事件可以被JS检测到的行为
    事件的三部分
    事件源 事件类型 事件处理程序 事件三要素
    事件源:事件被触发的对象
    事件类型:如何触发 什么事件
    事件处理程序 通过函数赋值的方式
    <button id="btn">唐伯虎</button>

操作元素

    改变元素内容
    element.innerHTML W3C标准
    识别HTML标签,保留空格和换行
    element.innerText 非标准
    不识别HTML标签,去除空格和换行
    这两个属性是可以读写的 可以获取元素里面内容
 
    <button id="button">显示时间</button>
<div id="div">某个时间</div>
<p id="p2">123</p>
<script>
// 点击按钮时 div里面的值发生变化
var btn = document.getElementById("button")
var div2 = document.getElementById("div")
btn.onclick = function () {
div2.innerHTML = getDate()
} function getDate() {
var date = new Date()
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var day = date.getDay()
var dateArr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
return ("今天是" + year + "年" + month + "月" + dates + "日" + dateArr[day])
} // 元素可以不用添加事件
var p3 = document.getElementById("p2")
p3.innerHTML = getDate()
</script>
 <!-- 切换图片案例 -->
<button id="button1">1</button>
<button id="button2">2</button>
<img src="../imges/business-pic3.jpg" alt="">
<script>
// 获取元素
var button1 = document.getElementById("button1")
var button2 = document.getElementById("button2")
var img = document.querySelector("img")
// 注册事件 修改图片地址
button1.onclick = function () {
img.src = "../imges/business-pic4.jpg"
}
button2.onclick = function () {
img.src = "../imges/business-pic3.jpg"
}
</script>

案例

<!-- 分时显示不同的图片 -->
<img src="../imges/u=1362909999,1391932580&fm=11&gp=0.jpg" alt="">
<div>上午好</div>
<script>
var img = document.querySelector("img")
var div = document.querySelector("div")
var time = new Date();
var h = time.getHours();
if (h < 12) {
img.src = '../imges/u=1362909999,1391932580&fm=11&gp=0.jpg'
div.innerHTML = "上午好好学习"
} else if (h < 18) {
img.src = '../imges/u=3070420121,2549906773&fm=26&gp=0.jpg'
div.innerHTML = "中午好好学习"
} else {
img.src = '../imges/u=3279797416,3064979525&fm=26&gp=0.jpg'
div.innerHTML = "晚上好好学习"
}
</script>
 <!-- 点击按钮修改文本内容 -->
<button>按钮</button>
<input type="text" value="输入内容">
<script>
var btn = document.querySelector("button")
var input = document.querySelector("input")
btn.onclick = function () {
input.value = '是是是'
// 如果想要某个表单被禁用可以用disabled
this.disabled = true
// this指向的是事件函数的调用者
}
</script>
 <!-- 点击眼睛查看密码 -->
<div class="box">
<label for=""><img src="../imges/business-pic4.jpg" alt="" id="eye"></label> <input type="password" name=""
id="pwd">
</div>
<script>
var eye = document.getElementById("eye")
var pwd = document.getElementById("pwd")
var flag = 0;
// 点击一次过后flag一定要变化'
eye.onclick = function () {
if (flag == 0) {
pwd.type = "text"
flag = 1;
} else {
pwd.type = "password"
flag = 0;
}
}
</script>
 <!-- 点击box修改背景 -->
<div id="box2">eeeeeeeeee</div>
<script>
var box2 = document.getElementById("box2")
var flag = 0
box2.onclick = function () {
if (flag == 0) {
this.style.background = 'blue'
this.style.width = "350px"
flag = 1
} else {
this.style.background = 'black'
this.style.width = "450px"
flag = 0
} }
</script>

css代码

        img {
width: 300px;
height: 300px;
} .box {
width: 400px;
height: 400px;
border: 1px solid #efefef;
margin: 100px auto;
position: relative;
} .box input {
width: 350px;
height: 30px;
outline: none;
} .box img {
width: 20px;
height: 20px;
position: absolute;
top: 7px;
right: 70px;
} #box2 {
width: 200px;
height: 200px;
background-color: gold;
} .box3 {
width: 200px;
height: 200px;
margin: 0 auto;
display: block;
position: relative;
} .box3 i {
position: absolute;
left: -10px;
top:;
cursor: pointer;
}

JS DOM笔记的更多相关文章

  1. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  2. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  3. DOM笔记(七):开发JQuery插件

    在上一篇笔记本中,讲解了如何利用jQuery扩展全局函数和对象:DOM笔记(六):怎么进行JQuery扩展? 在这篇笔记本中,将开发一个简单的动画插件,名称是example-plugin,用其实现一个 ...

  4. JS面向对象笔记二

    菜单导航,<JS面向对象笔记一>,  参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...

  5. JS自学笔记01

    JS自学笔记01 1.开发工具 webstorm 2.js(javascript) 是一门脚本.解释性.动态类型.基于对象的语言 含三个部分: ECMAScript标准–java基本语法 DOM(Do ...

  6. JS学习笔记5_DOM

    1.DOM节点的常用属性(所有节点都支持) nodeType:元素1,属性2,文本3 nodeName:元素标签名的大写形式 nodeValue:元素节点为null,文本节点为文本内容,属性节点为属性 ...

  7. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  8. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

  9. js学习笔记(1)

    前言 ​ 因为后期的软件工程组队作业需要js,在纪华裕大佬的带领下(我觉得他好像更喜欢纪华裕这个名字),我开始了js的学习.其实这篇博客应该在两天前的晚上就发出来了,因为忙着写个人编程,拖到了现在,组 ...

随机推荐

  1. 数据可视化之powerBI技巧(四)使用Power BI制作帕累托图

    各种复杂现象的背后,其实都是受关键的少数因素和普通的大多数因素所影响,把主要精力放在关键的少数因素上,就能达到事半功倍的效果. 这就是大家常说的二八原则,也称为帕累托原则,最早是由意大利经济学家 V. ...

  2. MapReduce计算框架的核心编程思想

    @ 目录 概念 MapReduce中常用的组件 概念 Job(作业) : 一个MapReduce程序称为一个Job. MRAppMaster(MR任务的主节点): 一个Job在运行时,会先启动一个进程 ...

  3. shaderlab - 9chapter-阴影

    原理 相机和光源重合,相机能看到的表面,形成的深度图--叫做,阴影纹理(shadowMap). 传统的,用base和add更新深度信息,但是,此处需求是深度信息而已,掺杂了光的计算了,所以,unity ...

  4. LDAP脚本批量导出用户

    背景:工作原因,搭建了LDAP服务,然后用户数过多,因为懒所以就通过python代码生成ldap脚本进行批量导入用户 1.整理用户名单,格式如下: 注:上述格式影响代码中的excel读取代码 2.py ...

  5. Python Ethical Hacking - WEB PENETRATION TESTING(4)

    CRAWING SPIDER Goal -> Recursively list all links starting from a base URL. 1. Read page HTML. 2. ...

  6. P2070 刷墙 (洛谷)

    题目描述 Farmer John已经设计了一种方法来装饰谷仓旁边的长栅栏(把栅栏认为是一根一维的线).他把一只画刷绑在他最喜爱的奶牛Bessie身上,之后就去喝一杯冰水,而Bessie隔着栅栏来回走, ...

  7. IOS上传图片方向问题

    在显示上传完毕的图片的时候遇到了一个问题, 图片莫名其妙被逆时针旋转了90度就很离谱 如下图 经过一番查询, 原来是 IOS 的相机拍照的时候会把方向角写入到图片里面 因为我用的是 element 的 ...

  8. 消除win10桌面图标的右下方小箭头

    很容易的小东西,在这里简单提一下 新建一个记事本,写下以下代码,改为.bat后缀,双击运行,然后箭头消失 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Micro ...

  9. websphere8.5配置db2数据源

    websphere8.5配置db2数据源 1. 打开websphere控制台  2.进入websphere变量页面  3. 进入DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH变 ...

  10. 高精度进制转换(poj1220)

    常规短除法原理 高精度进制转换是对于特别大的数字来说的,当数字特别大时,难以进行除法和取余的操作,此时通过字符串模拟的办法可以解决. #include <iostream> #includ ...