文章目录

  • HTML 中存在着真实的 JavaScript 代码
  • 可以使用纯 JavaScript 结构来通过一个指令选取所有按钮
  • JavaScript练习-情话生成器
    • HTML DOM querySelector() 方法
    • 完整代码

HTML 中存在着真实的 JavaScript 代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>使用 JavaScript 的示例</title><script>function createParagraph() {const para = document.createElement('p');para.textContent = '你点击了这个按钮!';document.body.appendChild(para);}</script></head><body><button onclick="createParagraph()">点我呀</button></body>
</html>

<button> 元素中包含了一个内联的 onclick 处理器,使得函数在按钮被按下时运行。效率低下。对于每个需要应用 JavaScript 的按钮,你都得手动添加 onclick="createParagraph()"属性。

可以使用纯 JavaScript 结构来通过一个指令选取所有按钮

这是一个事件监听器,监听浏览器的 “DOMContentLoaded” 事件,即 HTML 文档体加载、解释完毕事件。事件触发时将调用 " . . ." 处的代码。

示例:

document.addEventListener("DOMContentLoaded", function() {. . .
});

示例一

guessSubmit 按钮添加了一个事件监听器,addEventListener() 方法包含两个可输入值(称为“参数”(argument)),监听事件的类型(本例中为“click”),和当事件发生时我们想要执行的代码(本例中为 checkGuess() 函数)。

guessSubmit.addEventListener('click', checkGuess);

示例二

DOMContentLoaded这个事件可以替代window.onload事件。querySelectorAll获取标签button的句柄,然后绑定createParagraph()函数。

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>使用 JavaScript 的示例</title><script>document.addEventListener("DOMContentLoaded", function() {function createParagraph() {const para = document.createElement('p');para.textContent = '你点击了这个按钮!';document.body.appendChild(para);}const buttons = document.querySelectorAll('button');for(let i = 0; i < buttons.length ; i++) {buttons[i].addEventListener('click', createParagraph);}});</script></head><body><button>点我呀</button></body>
</html>

JavaScript练习-情话生成器

在网络上总是有各种各样的新鲜项目!

善于学习知识,然后利用到生活的方方面面应该是每个程序员都想过的。对于我这种渣渣程序员也不例外。学了JavaScript,碰巧在微信群里看到有网友发了这两个网站。

  • 渣男: 说话的艺术 https://lovelive.tools/
  • 骂人宝典 https://nmsl.shadiao.app/

这两个网站都是调用本身存储的语句然后生成。想了一下用JavaScript实现其实也非常容易。这是做完以后的demo。

HTML DOM querySelector() 方法

作用:返回文档中匹配指定 CSS 选择器的一个元素。

语法:document.querySelector(CSS selectors)

##  获取文档中 id="demo" 的元素:document.querySelector("#demo");## 获取文档中第一个 <p> 元素:document.querySelector("p");## 获取文档中 class="example" 的第一个元素:document.querySelector(".example");## 获取文档中 class="example" 的第一个 <p> 元素:document.querySelector("p.example");## 获取文档中有 "target" 属性的第一个 <a> 元素:document.querySelector("a[target]");

完整代码

<!DOCTYPE html>
<html>
<body><h2>JavaScript练习-情话生成器</h2><button  class="build_example">随机生成</button>
<p id="demo"></p><script>/**  情话集合 */
var lovesong = ["你眼瞎吗 撞我心口上了",
"“不要抱怨” “抱我”",
"美好的事情你都用脸做到了",
"你是什么人 你是我的心上人",
"我不想撞南墙了 只想撞你的胸膛",
"我一点不想你 但一点半想你了",
"虽然溜肩,但是锁骨真好看",
"我对你的爱,就像拖拉机上山轰轰烈烈",
"你就委屈一下,栽在我手里行不行?"];//获取指定区间范围随机数,包括lowerValue和upperValue
function randomFrom(lowerValue,upperValue)
{return Math.floor(Math.random() * (upperValue - lowerValue + 1) + lowerValue);
}/** 按钮点击 **/
document.addEventListener("DOMContentLoaded", function() {function createParagraph() {/*随机数生成*/var upperValue = lovesong.length-1;var lowerValue = 0;let pre = 0;    /** 存储上一个数字 **/var random = randomFrom(upperValue,lowerValue);      /** 第一次生成随机数 **/while(random == pre)                                 /**  和上一次的值不相同 **/{random = randomFrom(upperValue,lowerValue);      if (random != pre) {break;}}document.getElementById("demo").innerHTML = lovesong[random];   /**变换内容**/pre = random;}const btnBuilds = document.querySelector(".build_example");    // 随机生成btnBuilds.addEventListener('click', createParagraph);});</script></body>
</html>

内联 JavaScript 处理器、JavaScript练习-情话生成器相关推荐

  1. JavaScript基础13-day15【DOM增删改、DOM添加删除记录、操作内联样式、获取元素的样式、DOM Element 对象、滚动条练习、事件对象、div跟随鼠标移动、事件冒泡】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  2. Javascript性能优化【内联缓存】 V8引擎特性

    javascript 是单线程.动态类型语言,那么我们在编码时候如何编写性能最优代码呢?下面将讲解V8引擎的内联优化.利用内联缓存这个特性我们可以编写更加优秀的代码. 什么是内联缓存 引用官方的描述: ...

  3. html+php内联执行JavaScript是报错

    报错信息 read.php:1 Refused to run the JavaScript URL because it violates the following Content Security ...

  4. 页面引用CSS和Javascript时,内联和外置的区别

    CSS在实际应用中,一般有以下三种级联方式. 1. 外联式 外联式样式表中,CSS 代码作为文件单独存放,如以 style.css 文件包含所有样式.在 HTML 中的外部级联采用 <link& ...

  5. dhtml gantt所有配置_甘特图dhtmlxGantt使用教程:如何快速设置内联编辑器和编辑JavaScript Gantt数据...

    dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表.可满足项目管理应用程序的所有需求,是最完善的甘特图图表库.它允许你创建动态甘特图,并以一个方便的图形化方式可视化项目进度 ...

  6. 掌握JavaScript中的迭代器和生成器,顺便了解一下async、await的原理

    掌握JavaScript中的迭代器和生成器,顺便了解一下async.await的原理 目录 掌握JavaScript中的迭代器和生成器,顺便了解一下async.await的原理 前言 1.迭代器(It ...

  7. api 微信内置浏览器js_微信开发-微信内置浏览器的Javascript API

    /**! * 微信内置浏览器的Javascript API,功能包括: * * 1.分享到微信朋友圈 * 2.分享给微信好友 * 3.分享到腾讯微博 * 4.隐藏/显示右上角的菜单入口 * 5.隐藏/ ...

  8. 【读书笔记】【WebKit技术内 幕(三)】GPU硬件加速渲染、canvas与WebGL、 JavaScript与JavaScript 引擎、JavaScriptCore与V8

    文章目录 前言 Something great 第8章 硬件加速机制 硬件加速基础 -- *** Chromium的硬件加速机制 -- *** 其他硬件加速模块 第9章 JavaScript引擎 Ja ...

  9. CSS性能优化:可以试一试内联CSS?

    CSS性能优化:可以试一试内联CSS? 在互联网的早期,网站主要用于显示基于文本的信息.慢慢地,我们的连接速度得到了提高,用户能够相当快地下载高分辨率图像和视频.现在,网站做的不仅仅是以文本形式提供必 ...

最新文章

  1. php发光字体代码,CSS3怎么实现字体发光效果
  2. 《LeetCode力扣练习》第136题 只出现一次的数字 Java
  3. 【深度学习】基于Pytorch进行深度神经网络计算(二)
  4. Java静态变量与静态方法与成员变量成员方法的区别
  5. python 如何获取当前时间并转换为年月日
  6. Vue 2.x + Webpack 4.x的那些事---萌新必备
  7. 不要局限在完成当前飞鸽传书2009的简单思路上
  8. php跳过一段html,PHP_一段能瞬间秒杀所有版本IE的简单HTML代码,许多人都非常讨厌Internet Explore - phpStudy...
  9. python for android 安装配置_mac appium for android 环境搭建 (appium python pycharm)
  10. Flutter ContrainedBox
  11. Ubuntu16.04火狐浏览器问题汇总
  12. stm32 RTC闹钟唤醒低功耗模式
  13. 华为云盘(华为云空间)免费空间
  14. C语言基本变量类型及变量的定义
  15. win10尘埃4点击开始游戏自动关闭没反应|dirt4.exe进程消失的解决方法
  16. 标准资本赵晨:Token会推动金融市场的流动性|筱静观察
  17. 计算机p是什么单位是什么,功率的计算公式及单位
  18. go语言中flag库使用
  19. 计算机电源常见的认证有哪些,哪些电源适配器需要办理CCC认证
  20. Top 100 大学

热门文章

  1. 【EPS32S3学习笔记】OV2640+OLED的图像刷新率
  2. 娜塔莉(Nathalie)
  3. 放下手机好好过年html,这个春节你敢放下手机好好过年吗?
  4. 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。
  5. 胡克定律(Hooke's law)
  6. 全网最细:Jest+Enzyme测试React组件(包含交互、DOM、样式测试)
  7. Jest的好帮手 Enzyme ,模拟事件测试 测试异常
  8. IP地址、子网掩码、默认网关、DNS服务器详解
  9. 考拉小巫的英语学习日记
  10. 飞项为什么是项目管理的神?