yuto__ 2024-06-11 11:32 采纳率: 21.7%
浏览 1

关于#javascript#的问题:取不出来emp_id和device_SN_ID,我将他在前台打印出来两个数据都是undefined

li标签中取不出数据

$("ul#wc").on("click", "li", function() { // 只需要找到你点击的是哪个ul里面的就行
//        alert($(this).data('wc'));
//                 loadData(emp_id, $(this).data('wc'))
                var Emp_id = $(this).data('emp_id');
                var Wc_id = $(this).data('device_SN_ID');
                console.log(Wc_id);
                console.log(Emp_id);
                var data = [{ emp_id: Emp_id, wc_id: Wc_id }];
                $('#tb_temp').bootstrapTable('refresh', data);
                console.log(data)
            });
        }

为什么通过上面代码var Emp_id = $(this).data('emp_id');这种方式,取不出来emp_id和device_SN_ID,我将他在前台打印出来两个数据都是undefined

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-11 11:32
    关注

    引自免费微信小程序:皆我百晓生

    遇到在jQuery事件处理器中$(this).data('emp_id')$(this).data('device_SN_ID')返回undefined的情况,通常意味着在触发事件的元素上没有正确设置这些数据属性。解决这个问题的关键在于确保li标签正确包含了data-emp_iddata-device_SN_ID属性。

    解决方案

    1. 检查HTML结构:确认li标签是否包含了data-emp_iddata-device_SN_ID属性。

      <ul id="wc">
          <li data-emp_id="123" data-device_SN_ID="456">Employee 1</li>
          <!-- 更多li标签 -->
      </ul>
      
    2. 验证jQuery选择器和事件绑定:确保事件处理器正确绑定了到li标签,并且在元素加载后执行。

      $(document).ready(function() {
          $("ul#wc").on("click", "li", function() {
              var Emp_id = $(this).data('emp_id');
              var Wc_id = $(this).data('device_SN_ID');
              console.log(Wc_id);
              console.log(Emp_id);
              var data = [{ emp_id: Emp_id, wc_id: Wc_id }];
              $('#tb_temp').bootstrapTable('refresh', data);
              console.log(data);
          });
      });
      
    3. 调试与检查

      • 在控制台查看是否有错误信息。
      • 使用console.log(this)检查事件触发时的this对象是否为预期的li元素。
      • 确保bootstrapTable插件已正确加载并初始化。

    示例代码

    以下是完整的示例代码,包括HTML和JavaScript,用于验证和调试:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <!-- 引入Bootstrap Table的CSS和JS文件 -->
        <link rel="stylesheet" href="path/to/bootstrap-table.min.css">
        <script src="path/to/bootstrap-table.min.js"></script>
    </head>
    <body>
        <ul id="wc">
            <li data-emp_id="123" data-device_SN_ID="456">Employee 1</li>
            <li data-emp_id="789" data-device_SN_ID="101112">Employee 2</li>
        </ul>
        <table id="tb_temp" data-toggle="table"></table>
    
        <script>
            $(document).ready(function() {
                $("ul#wc").on("click", "li", function() {
                    console.log("Clicked LI:", this);
                    var Emp_id = $(this).data('emp_id');
                    var Wc_id = $(this).data('device_SN_ID');
                    console.log("Emp_id:", Emp_id);
                    console.log("Wc_id:", Wc_id);
                    var data = [{ emp_id: Emp_id, wc_id: Wc_id }];
                    $('#tb_temp').bootstrapTable('refresh', {silent:true, data: data});
                    console.log("Data:", data);
                });
            });
        </script>
    </body>
    </html>
    

    请替换path/to/部分为实际的文件路径或CDN链接。这将帮助你更清晰地看到数据是否被正确获取,并且bootstrapTable是否能够正确刷新数据。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月11日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图