静态网页基础知识

1、获取输入框的输入值

var x = document.getElementById('userInput').value

赋值的话:document.getElementById('userInput').value = 1

2、获取td的值、span的值等一个区域的值

var x = document.getElementById('result').innerText

赋值:document.getElementById('result').innerText = ”1“

或者:document.getElementById('result').innerHTML = 1

3、获得一个父组件的所有”x“类型的子组件

getElementsByTagName

如获得ul下面所有li类型的组件:

//获取ul
var ul = document.getElementById("photos"
//得到ul下面叫做li的所有标签
var lis =ul.getElementsByTagName("li");

4、设置定时:

setInterval(方法,间隔时间)-----间隔多久时间执行一次方法

如:

setInterval( function (){
    //获取ul
    var ul = document.getElementById("photos")
    //得到ul下面叫做li的所有标签
    var lis =ul.getElementsByTagName("li");
    for(var i =0;i<lis.length;i++){
        lis[i].className="hide"
    }
    //下一个li显示
    index++;
    lis[index%lis.length].className="show"
},1000)

5、通过js创造新的组件并且添加到页面上显示

document.createElement("类型")

如:创造一个option类型的新节点

var option = document.createElement("option")

设置新节点的value值为3,代表是select中第四个选项:

option.setAttribute("value",3)

设置新节点的属性值

option.innerHTML=”第四个选项“

应用新节点到select中

document.getElementById("select").appendChild(option)

同样的,ul也可以用这种方法添加,不过创建的新节点是li

var li= document.createElement("li")

6、购物车案例,关键是要理清楚逻辑,通过层级关系去找需要的东西

<!DOCTYPE html>
<html>
  <head>
    <title>购物车</title>
    <meta charset="utf-8" />
    <style type="text/css">
      h1 {
        text-align:center;
      }
      table {
        margin:0 auto;
        width:60%;
        border:2px solid #aaa;
        border-collapse:collapse;
      }
      table th, table td {
        border:2px solid #aaa;
        padding:5px;
      }
      th {
        background-color:#eee;
      }
    </style>
    <script type="text/javascript">
      function add_shoppingcart(btn){

        //1.根据点击的按钮找到同行的商品和单价
        //根据点击的按钮找到他的爷爷,行
        var tr = btn.parentNode.parentNode;
        //爷爷tr的所有儿子td
        var tds = tr.getElementsByTagName("td");
        //第一个td是商品名
        var name = tds[0].innerText;
        //第二个td是价格
        var price = tds[1].innerText;
        //alert(price);
        //获得购物车
        var tbody = document.getElementById("goods");

        //判断购物车每一行,看是不是已经有同样的商品了,如果是的话就应该直接改变购物车里的对应行的数量和价格
        var tbtrs = tbody.getElementsByTagName("tr");//tbody的每一行
        for(var i=0;i<tbtrs.length;i++){
          var tbtds = tbtrs[i].getElementsByTagName("td");//tbody某一行的所有列
          if(name == tbtds[0].innerText){//第一列是商品名,如果点击加入购物车的商品在购物车中
            var inputtd = tbtds[2];//获得购物车里加号所在列
            var inputs = inputtd.getElementsByTagName("input");//获得第三列所有input(-,数量,+)
            var button = inputs[2];//加号按钮
            increase(button);//将这个按钮作为参数执行加加方法
            return;//结束方法
          }
        }


        //2.创建一个tr插入到购物车table下面
        var ntr = tbody.insertRow();
        //3.编写这一行的商品名和价格
        ntr.innerHTML=
                '<td>'+name+'</td>'+
                '<td>'+price+'</td>'+
                '<td align="center">'+
                    '<input type="button" value="-" onclick="decrease(this)"/>'+
                    '<input type="text" size="3" id="sl" value="1"/>'+
                    '<input type="button" value="+" onclick="increase(this)">'+
                '</td>'+
                '<td id="allPrice">'+price+'</td>'+
                '<td>'+
                '<input type="button" value="x" onclick="del(this)"/>'+
                '<td>'

        //4.改变总和
        total();
      }
      //删除一行
      function del(btn){
        //获取按钮对应的这一行
        var deltr = btn.parentNode.parentNode;
        //用这一行的父节点来删除这一行
        deltr.parentNode.removeChild(deltr);

        //4.改变总和
        total();
      }
      //数量++
      function increase(btn){
        //1.数量++
        var intd = btn.parentNode;//得到按钮所在列
        //得到该列所有叫input的组件,数量是第二个组件
        var inputs = intd.getElementsByTagName("input");
        var sl = inputs[1];
        var value = parseInt(sl.value);
        sl.value = ++value;
        // sl.setAttribute("value",++value);
        // alert(sl.value)

        //2.获取单价
        //获取这一行
        var trs = btn.parentNode.parentNode;
        //获取所有td
        var tds = trs.getElementsByTagName("td");
        //获取单价,单价是td里的text,
        var price = tds[1].innerText;

        //3.数量*单价
        var all = parseInt(price)*parseInt(sl.value);
        var alltd = tds[3];
        alltd.innerText = all;

        //4.改变总和
        total();

      }

      //数量--
      // function decrease(btn){
      //   //获得点击的这一行tr
      //   var intr = btn.parentNode.parentNode;
      //   //获得这一行的数量,不对,这只能获取第一行sl
      //   var sl = document.getElementById("sl");
      //
      //   //数量减减
      //   var sl1 = parseInt(sl.value)-1
      //   sl.setAttribute("value",sl1) ;
      //   alert(sl.value)
      //
      //   //获得这一行的单价
      //   var intds = intr.getElementsByTagName("td");
      //   var price = intds[1].innerText;
      //   //alert(price)
      //
      //   //修改这一行的总金额
      //   var allprice = intds[3];
      //   var a = parseInt(sl1)*parseInt(price);
      //   allprice.innerHTML=a;
      // }
      //数量减减
      function decrease(btn){
        //先判断能不能减,如果数量是0则不能减
        var btntd = btn.parentNode;
        var inputs = btntd.getElementsByTagName("input");
        var sl = inputs[1];

        if(sl.value==0){
          //alert("数量为0,不能减");
          return;//1.方法有返回值时,结束方法、返回返回值,2.结束方法
        }
        else{
          //1.减减
          var value = parseInt(sl.value);
          sl.value = --value;
          //2.获取单价
          var tr = btn.parentNode.parentNode;
          var tds = tr.getElementsByTagName("td");
          var price = tds[1].innerText;
          //3.改变总金额
          var all = tds[3];
          all.innerText = parseInt(sl.value)*parseInt(price)

          //4.改变总和
          total();
        }
      }

      //改变合计
      function total(){
        var all = 0;//总金额
        //1.得到total列
        var total = document.getElementById("total");
        //2.遍历购物车表格tbody每一行tr的第四列td
        var tbody = document.getElementById("goods");
        var trs = tbody.getElementsByTagName("tr");
        for(var i=0;i<trs.length;i++){
          var tds = trs[i].getElementsByTagName("td");
          all += parseInt(tds[3].innerText)
        }
        total.innerText = all;
      }

    </script>
  </head>
  <body>
    <h1>真划算</h1>
    <table>
      <tr>
        <th>商品</th>
        <th>单价(元)</th>
        <th>颜色</th>
        <th>库存</th>
        <th>好评率</th>
        <th>操作</th>
      </tr>   
      <tr>
        <td>罗技M185鼠标</td>
        <td>80</td>
        <td>黑色</td>
        <td>893</td>
        <td>98%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>微软X470键盘</td>
        <td>150</td>
        <td>黑色</td>
        <td>9028</td>
        <td>96%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>洛克iphone6手机壳</td>
        <td>60</td>
        <td>透明</td>
        <td>672</td>
        <td>99%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>蓝牙耳机</td>
        <td>100</td>
        <td>蓝色</td>
        <td>8937</td>
        <td>95%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
      <tr>
        <td>金士顿U盘</td>
        <td>70</td>
        <td>红色</td>
        <td>482</td>
        <td>100%</td>
        <td align="center">
          <input type="button" value="加入购物车" onclick="add_shoppingcart(this);"/>
        </td>
      </tr>
    </table>
  
    <h1>购物车</h1>
    <table>
      <thead>
        <tr>
          <th>商品</th>
          <th>单价(元)</th>
          <th>数量</th>
          <th>金额(元)</th>
          <th>删除</th>
        </tr>
      </thead>
      <tbody id="goods">             
<!--        <tr>-->
<!--          <td>罗技M185鼠标</td>-->
<!--          <td>80</td>-->
<!--          <td align="center">-->
<!--            <input type="button" value="-"/>-->
<!--            <input type="text" size="3" readonly value="1"/>-->
<!--            <input type="button" value="+"/>-->
<!--          </td>-->
<!--          <td>80</td>-->
<!--          <td align="center"><input type="button" value="x"/></td>-->
<!--        </tr>         -->
      </tbody>
      <tfoot>
        <tr>
          <td colspan="3" align="right">总计</td>
          <td id="total"></td>
          <td></td>
        </tr>
      </tfoot>
    </table>    
  </body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/784138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一、redis-万字长文读懂redis

高性能分布式缓存Redis `第一篇章`1.1缓存发展史&缓存分类1.1.1 大型网站中缓存的使用带来的问题1.1.2 常见缓存的分类及对比与memcache对比1.2 数据类型选择&应用场景1.2.1 string1.2.2 hash1.2.3 链表1.2.4 set1.2.5 sortedset有序集合类型1.2.6 总结1.3 Redis高级应…

mysql在linux系统下重置root密码

mysql在linux系统下重置root密码 登录服务器时候mysql密码忘记了&#xff0c;没办法只能重置&#xff0c;找了一圈&#xff0c;把行之有效的方法介绍在这里。 错误展示&#xff1a; 我还以为yes就可以了呢&#xff0c;这是不行的意思。 关掉mysql服务 sudo systemctl stop …

百度、谷歌、必应收录个人博客网站

主要是给各个搜索引擎提交你的sitemap文件&#xff0c;让别人能搜到你博客的内容。 主题使用的Butterfly。 生成sitemap 安装自动生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站点配置文件_config.yml…

Redhat 安装 docker 网络连接超时问题

目录 添加阿里云的Docker CE仓库 更新YUM缓存 安装 Docker Engine 启动并设置Docker自启动 验证 Docker 安装 [userlocalhost ~]$ sudo yum-config-manager --add-repohttps://download.docker.com/linux/centos/docker-ce.repo 正在更新 Subscription Management 软件仓库…

PHP中的运算符与表达式:深入解析与实战应用

目录 一、基础概念 1.1 运算符的定义 1.2 表达式的定义 二、PHP运算符的分类 2.1 算术运算符 2.2 赋值运算符 2.3 比较运算符 2.4 逻辑运算符 2.5 位运算符 2.6 字符串运算符 2.7 错误控制运算符 三、表达式的优先级与结合性 3.1 优先级 3.2 结合性 四、实战应…

挑战全网最清晰解决文本文件乱码方案

标题 文本文件出现乱码之全网最清晰解决方案乱码出现的原因解决方案第一步&#xff1a;获取文件的原始编码格式。第二步&#xff0c;获取当前系统的格式第三步&#xff0c;将文件的内容以当前系统编码格式进行译码并且输出到新的文件中第四步&#xff0c;删除原文件&#xff0c…

【SOLID原则前端中的应用】接口隔离原则(Interface Segregation Principle,ISP)- vue3示例

接口隔离原则&#xff08;Interface Segregation Principle&#xff0c;ISP&#xff09;在Vue 3中的应用 接口隔离原则&#xff08;Interface Segregation Principle&#xff0c;ISP&#xff09;规定&#xff0c;客户端不应该被迫依赖于它不使用的方法。 换句话说&#xff0c;…

【Python_GUI】tkinter常用组件——文本类组件

文本时窗口中必不可少的一部分&#xff0c;tkinter模块中&#xff0c;有3种常用的文本类组件&#xff0c;通过这3种组件&#xff0c;可以在窗口中显示以及输入单行文本、多行文本、图片等。 Label标签组件 Label组件的基本使用 Label组件是窗口中比较常用的组件&#xff0c;…

JavaEE初阶-网络原理1

文章目录 前言一、UDP报头二、UDP校验和2.1 CRC2.2 md5 前言 学习一个网络协议&#xff0c;最主要就是学习的报文格式&#xff0c;对于UDP来说&#xff0c;应用层数据到达UDP之后&#xff0c;会给应用层数据报前面加上UDP报头。 UDP数据报UDP包头载荷 一、UDP报头 如上图UDP的…

使用ifconfig命令获取当前服务器的内网IP地址

如何使用ifconfig命令获取当前服务器的内网IP地址呢&#xff1f; ifconfig eth0 | grep inet | awk {print $2}

redis运维:sentinel模式如何查看所有从节点

1. 连接到sentinel redis-cli -h sentinel_host -p sentinel_port如&#xff1a; redis-cli -h {域名} -p 200182. 发现Redis主服务器 连接到哨兵后&#xff0c;我们可以使用SENTINEL get-master-addr-by-name命令来获取当前的Redis主服务器的地址。 SENTINEL get-master-a…

最小爬楼梯(dp)

import java.util.Scanner;public class ClimbingStairsCost {public static int minCostClimbingStairs(int[] cost) {int n cost.length; // 获取输入的 cost 数组的长度int[] dp new int[n 1]; // 创建一个用于存储每个台阶最小花费的 dp 数组dp[0] 0; dp[1] 0; // 初始…

解析java128陷阱

一、提要 在java开发时&#xff0c;由于基本类型不能调用方法&#xff0c;在某些方面很不方便&#xff0c;因此产生了包装类。我们把基本类型和对应的包装类的转换叫装箱、拆箱。 1.装箱 基本类型转成包装类对象 关键字valueOf->装箱,可以指定进制&#xff1a; Integer…

C# modbus验证

窗体 还有添加的serialPort控件串口通信 设置程序配置 namespace CRC {public static class CRC16{/// <summary>/// CRC校验&#xff0c;参数data为byte数组/// </summary>/// <param name"data">校验数据&#xff0c;字节数组</param>///…

NLP 面试八股:“Transformers / LLM 的词表应该选多大?“ 学姐这么告诉我答案

NLP 面试八股&#xff1a;“Transformers / LLM 的词表应该选多大?" 学姐这么告诉我答案 原创 看图学 看图学 2024年07月03日 07:55 北京 题目&#xff1a; Transformers/大模型的 token vocabulary 应该选多大&#xff1f; 答案 先说一下结论&#xff1a; 数据量够大…

docker 重要且常用命令大全

本文将总结一些常见的重要的docker命令&#xff0c;以作备忘。后续如果有新的比较常用重要的也会更新进来。欢迎补充。 docker服务管理 首先我们要解释一下&#xff1a;systemctl和docker命令的不同 systemctl&#xff1a;是许多 Linux 发行版中默认的初始化系统和服务管理器。…

提高LabVIEW软件通用性的方法

提高LabVIEW软件通用性的方法 在使用LabVIEW开发软件时&#xff0c;提高软件的通用性非常重要。通用性意味着软件可以在不同的应用场景中使用&#xff0c;具备高度的适应性和灵活性&#xff0c;从而提高软件的价值和用户满意度。以下从多个角度详细探讨如何提高LabVIEW软件的通…

媒体查询:根据设备特征动态调整样式和布局

不知道你会不会有一个疑问&#xff0c;同一个网站&#xff0c;用手机看和用电脑看在首选项和排版会发生一些变化&#xff0c;但我们使用起来仍然非常顺手&#xff0c;这就是响应式设计。响应式设计原理是指网页可以根据不同使用设备的屏幕尺寸&#xff0c;做出相应的调整和变化…

Linux走进网络

走进网络之网络解析 目录 走进网络之网络解析 一、认识计算机 1.计算机的发展 2.传输介质 3.客户端与服务器端的概念 交换机 路由器 二、计算机通信与协议 1. 协议的标准化 2. 数据包的传输过程 OSI 协议 ARP协议 3. TCP/IP:四层模型 4. TCP三次握手和四次挥手…

OceanBase 配置项系统变量实现及应用详解(1):配置项的定义及使用方法

《OceanBase 配置项&系统变量实现及应用详解》专题导读 在使用OceanBase的过程中&#xff0c;看到大家经常会遇到“参数”、“配置项”、“系统变量”等概念&#xff0c;却不太清楚它们是不是同一个东西&#xff0c;以及应该如何使用。一些对数据库开发感兴趣的朋友&#…