博主信息
笑颜常开的博客
博文
61
粉丝
0
评论
0
访问量
28045
积分:0
P豆:211.5

jQuery点击商品选中效果

2019年02月16日 20:29:04阅读数:938博客 / 笑颜常开的博客/ 前端知识

实例

<!DOCTYPE HTML>
<html>

<head>
  <title>脚本</title>
  <meta charset="utf-8" />
  <link rel="icon" type="image/x-icon" href="images/2.png">
  <script src="jquery-3.3.1.js"></script>
  <style type="text/css">
    * {
      margin: 0px auto;
      padding: 0px;
    }

    .top {
      width: 402px;
      height: 35px;
      line-height: 35px;
      text-align: center;
      margin-top: 50px;
      background: #C40000;
      color: #fff;
    }

    .main {
      width: 400px;
      height: 400px;
      border: 1px solid #C40000;
    }

    p {
      width: 400px;
      height: 26px;
      margin-top: 10px;
    }

    b {
      width: 90px;
      height: 26px;
      line-height: 26px;
      text-align: center;
      font-size: 12px;
      color: #838383;
      border: 1px solid #ccc;
      float: left;
      margin-left: 5px;
    }

    span {
      width: 90px;
      height: 26px;
      line-height: 26px;
      text-align: center;
      font-size: 12px;
      color: #838383;
      border: 1px solid #ccc;
      display: block;
      float: left;
      margin-left: 5px;
    }

    span:hover {
      cursor: pointer;
    }

    button {
      width: 120px;
      height: 35px;
      background: #C40000;
      color: white;
      border: 0px;
    }

    button:hover {
      cursor: pointer;
    }

    .notice {
      border: 0px;
    }

    .select {
      width: 88px;
      height: 24px;
      line-height: 24px;
      border: 2px solid #ff0000;
      color: red;
    }
  </style>
</head>

<body>
  <div class="top">请选择信息后加入购物车</div>
  <div class="main">
    <p class="item" name="version">
      <b class="notice">版本</b>
      <span>ONE A2001</span>
      <span>ONE A0001</span>
      <span>ONE A1001</span>
    </p>
    <p class="item" name="color">
      <b class="notice">机身颜色</b>
      <span>白色</span>
      <span>黑色</span>
      <span>金色</span>
    </p>
    <p class="item" name="type">
      <b class="notice">套餐类型</b>
      <span>标配</span>
      <span>套餐一</span>
      <span>套餐二</span>
    </p>
    <p class="item" name="ram">
      <b class="notice">运行内存</b>
      <span>2GB</span>
      <span>3GB</span>
      <span>4GB</span>
    </p>
    <p class="item" name="rom">
      <b class="notice">机身内存</b>
      <span>16GB</span>
      <span>32GB</span>
      <span>64GB</span>
    </p>
    <p class="item" name="location">
      <b class="notice">产地</b>
      <span>中国大陆</span>
      <span>港澳台</span>
    </p>
    <p class="item" name="price">
      <b class="notice">价格</b>
      <span>999元抢购</span>
    </p>
    <p class="item1" name="num">
      <b class="notice">数量</b>
      <input type="number" value="1" style="width:40px;height:26px;">
    </p>

    <p style="margin-top:30px;margin-left:95px;">
      <button class="bu1" id='sub'>加入购物车</button>
    </p>
  </div>
  <script type="text/javascript">
    $(function() {
      $("span").click(function() {
        if ($(this).hasClass("select")) { // 匹配span中是否带有class为select
          $(this).removeClass("select"); //含有就清除
        } else {
          $(this).addClass("select").siblings("span").removeClass("select");
        } //没有就添加上select的class名,同时匹配同级span,清除同级其他span中的选中样式
      });

      $('#sub').click(function() {
        let form = {} //创建一个对象, 用来存选中的数据的
        let flag = true //能不能加入购物车
        // 判断是否每个选项都选中; 没选中则弹窗警告; 选中了则添加至需要发送的表单数据里面
        $('.item').each(function() { //each() 方法规定为每个匹配元素规定运行的函数
          if ($(this).children('span.select').length != 1) {
            // alert($(this).find('.notice').html()+'未选中')
            flag = false;
          } else {
            let key = $(this).attr('name'); //获取当前p标签的 name属性值 不同的p属性名不一样
            let value = $(this).children('span.select').html() //获得被选中的商品类型
            form[key] = value //将键值对一一对应
          }

        })
        //判断数量最少为1
        // val()设置或返回表单字段的值
        if ($('.item1 input').val() <= 0) {
          alert('数量最少为1')
          flag = false;
        } else {
          //将用户输入商品件数放进form中
          form['num'] = $('.item1 input').val()
          console.log(form)
        }
        if (flag) {
          alert('可以加入购物车了')
        }
      })
    });
  </script>
</body>

</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • javascript实现购物车的方法:1、使用table来进行界面布局;2、自行封装getClasses函数;3、通过js实现和全,以及数量的增减等功能即可。
    图片的放大我们在软件开发经常遇到,其相当于放大镜
    设置方法:首先打开word文档,页面顶部的“页面布局”;然后择“页面颜色”,在下拉菜单“填充”;最后在新弹出的“填充”窗口里择“纹理”项卡,择一种填充“确定”即可。
    步骤:1、打开ppt,要设置的文字,择“动画”里的“自定义动画”;2、右边的添加择“弹跳”;3、右设置的动画择“项”;4、展开动画文本,择“按字母”,设置下面的延迟,
    pr添加控件的方法是:1、顶部菜单栏的【窗口】项;2、在弹出的项列表控件】项;3、打开控件面板,择我们需要的控件即可。
    添加方法:首先打开需要进行操作的ppt演示文档,指定对象;然后页面顶部的“动画”项卡,择指定动画;接着页面右侧的“自定义动画”项卡,择“动画项;最后择指定动画即可。
    PPT文字、图片、文本框元素均可以添加动画。添加动画的方法:1、打开ppt,需要添加动画的元素;2、菜单栏的“动画”;3、“添加动画”,择相应的动画即可。
    方法:1、打开ppt,图片;2、菜单栏的“动画”;3、择一个“动画”并修改参数;4、“确定”即可。
    方法:首先打开Word,输入“L∧”;接着单独“∧”;再右键,“字体”;然后在“”处勾“上标”,“确定”即可。
    premiere控件的设置方法:首先双视频素材,双重向右的箭头;然后在弹出的子菜单择“”;最后根据自己需要添加的分类功能择即可。
    把图片设置为word背景的方法:首先打开word文档,并在顶部菜单栏依次择“设计”-“页面颜色”-“填充”;然后在填充窗口择图片”按钮;最后“浏览”择要添加的本地图片即可。
    取消动画的方法:首先打开ppt演示文档,全幻灯片上所有内容;然后页面顶部的“动画”项;最后在“动画”项下拉菜单择“无”,即可关闭ppt的动画
    word如何纹理背景的方法:首先打开电脑上面的word并工具栏的页面布局;然后页面颜色并填充,在弹出的页面择纹理;最后一个纹理并确定即可。
    设置方法:首先打开需要进行操作的word文档,页面顶部的“设计”-“页面颜色”按钮,择“填充”;然后择“图片”项卡,择图片”;接着将图片插入到word;最后“确定”即可。
    ppt背景填充在【设置背景格式】,其设置背景填充的方法:首先新建幻灯片;然后右屏幕的幻灯片区域,把的【设置背景格式】;接着择屏幕的【纯色填充】项;最后择自己所需颜色开始填充即可
    ps黑白的制作方法:首先用PS打开需要处理的照片;然后图层并复制出新的图层,菜单栏的“图像”;接着”调整“择“黑白”;最后设置好参数确定即可。
    设置方法:首先右键“计算机”图标,找到并择“属性”;然后“高级系统设置”的“高级”项,性能下方的“设置”;最后视觉下方的最佳性能,“应用”即可。
    解决方法:1、同时按下键盘上的ALT+F9即可;2、如ALT+F9无,则在菜单栏工具项,在弹窗项里找到“图片框”,我们将其掉,再确定保存,这样图表就恢复了。
    word文档设置首字下沉的方法:1、打开word文档,顶部菜单栏的【插入】项;2、【首字下沉项】;3、择下沉,根据需要设置字体、下沉行数即可。
    在EXCEL单元格内划线的方法:首先单元格,并择设置单元格格式;然后“字体”,在特殊的删除线前面打勾;最后右下角的确定按钮。