首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取要在警报中显示的数据值

获取要在警报中显示的数据值
EN

Stack Overflow用户
提问于 2018-06-08 04:18:05
回答 1查看 286关注 0票数 0

我有以下代码。我需要检索.data中的值。它显示为空白,尽管当我在表单上显示它时,我知道它确实有一个值。

代码语言:javascript
复制
$('#Settings').on('click', '#senpop', function(e) {
  e.preventDefault();
  $('.field-validation-error').find('span').text('');
  $('#SensName').text($(this).data('sensname'));
  $('#SelectSenID').val($(this).data('sens'));

  // Note that the above code updates the values fine for the elements above. Below I am trying to get the value of "sensname" to show up in an alert but shows blank. 
  // I know there is a value because it does show up properly on the form but not able to 
  // retrieve it here. 

  var sens = $("#senpop");
  var inf = sens.data("sensname");
  alert(inf);

  $('#ViewModal').modal({
    backdrop: 'static',
    keyboard: false,
    show: true,
  });

});
代码语言:javascript
复制
<div class="hidden-lg hidden-sm hidden-md header_mobile">Name</div>
<div class="mobile_data">
  <a href="#" id="senpop" data-sens="@item.Sens" data-sensname="@item.SensName">@item.Name</a>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 04:50:10

通过以下设置,我可以在Chrome和Firefox中打印数据属性。

首先-是的,最好的做法是不要使用alert()进行这样的调试。始终默认为console.log()

接下来,我猜您的HTML结构更像这样:

代码语言:javascript
复制
<div id="Settings">
  Settings
  <div class="hidden-lg hidden-sm hidden-md header_mobile">Name</div>
  <div class="mobile_data">
    <a href="#" id="senpop" data-sens="@item.Sens" data-sensname="@item.SensName">@item.Name</a>
  </div>
</div>

..。因为您要将click处理程序绑定到#Settings元素。确保#Settings元素不是<a>,因为嵌套<a>标记是无效的。

接下来,请确保将jQuery和js脚本放在结束</body>标记的上方,这是一种最佳实践

代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="/js/yourscript.js"></script>
</body>

...or,如果由于某种原因无法将脚本添加到正文中,请将脚本包装在document.ready中:

代码语言:javascript
复制
$( document ).ready(function() {
  // your js code
});

所以,这是工作代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
  </head>
  <body>
    <div id="Settings">
      Settings
      <div class="hidden-lg hidden-sm hidden-md header_mobile">Name</div>
      <div class="mobile_data">
        <a href="#" id="senpop" data-sens="@item.Sens" data-sensname="@item.SensName">@item.Name</a>
      </div>
    </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
  <script>
    $('#Settings').on('click', '#senpop', function(e) {
      e.preventDefault();
      console.log('#settings clicked');
      $('.field-validation-error').find('span').text('');
      $('#SensName').text($(this).data('sensname'));
      $('#SelectSenID').val($(this).data('sens'));

      // Below I am trying to get the value of sensor to show up in an alert but shows blank.
      // I know there is a value because it does show up properly on the form but not able to
      // retrieve it here.

      var sens = $("#senpop");
      var inf = sens.data("sensname");
      console.log(inf);

      $('#ViewModal').modal({
        backdrop: 'static',
        keyboard: false,
        show: true,
      });
    });
  </script>
  </body>
</html>

以下是运行此代码并单击#senpop的屏幕截图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档