Javascript 获取要在警报时显示的数据值
我有以下代码。我需要检索.data中的值。它显示为空白,尽管我知道当我在表单上显示它时它确实有一个值Javascript 获取要在警报时显示的数据值,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码。我需要检索.data中的值。它显示为空白,尽管我知道当我在表单上显示它时它确实有一个值 $(“#设置”)。在('click','#senpop',函数(e){ e、 预防默认值(); $('.field validation error')。查找('span')。文本(''; $('#SensName').text($(this.data('SensName')); $('#SelectSenID').val($(this.data('sens')); //请注意,上面的代码可以很
$(“#设置”)。在('click','#senpop',函数(e){
e、 预防默认值();
$('.field validation error')。查找('span')。文本('';
$('#SensName').text($(this.data('SensName'));
$('#SelectSenID').val($(this.data('sens'));
//请注意,上面的代码可以很好地更新上面元素的值。下面我试图让“sensname”的值显示在警报中,但显示为空白。
//我知道有一个值,因为它确实正确地显示在表单上,但无法
//在这里取回它。
var sens=$(“#senpop”);
var inf=传感器数据(“传感器名称”);
警报(inf);
$('#viewmodel').model({
背景:“静态”,
键盘:错,
秀:没错,
});
});
名称
通过以下设置,我能够在Chrome和Firefox中打印数据属性
首先-是的,最好不要使用alert()
进行这样的调试。始终默认为console.log()
接下来,我猜您的HTML结构更像这样:
<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>
…或者,将脚本包装在文档中。如果出于任何原因无法将脚本添加到正文中,请准备好:
$( document ).ready(function() {
// your js code
});
这是工作代码:
<!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>
设置
名称
$(“#设置”)。在('click','#senpop',函数(e)上{
e、 预防默认值();
console.log('点击设置');
$('.field validation error')。查找('span')。文本('';
$('#SensName').text($(this.data('SensName'));
$('#SelectSenID').val($(this.data('sens'));
//下面我试图让传感器的值显示在警报中,但显示为空白。
//我知道有一个值,因为它确实正确地显示在表单上,但无法
//在这里取回它。
var sens=$(“#senpop”);
var inf=传感器数据(“传感器名称”);
控制台日志(inf);
$('#viewmodel').model({
背景:“静态”,
键盘:错,
秀:没错,
});
});
下面是运行此代码并单击#senpop
的屏幕截图:
首先,不要使用alert()
进行调试,因为它会自动强制数据类型,请改用console.log()
。其次,你在JS的末尾缺少了一个)
——这只是一个打字错误吗?检查控制台是否有错误。还要确保#senpop
是#Settings
的子项,否则事件将永远不会被捕获。您看到警报了吗?@Balmar是的警报确实会出现,但它是空白的。我知道它很好,我确实看到了表单上的值。我需要抓住我需要的东西的价值。任何帮助都将不胜感激。您确定数据sensname
在您的HTML中有值吗?例如,@item.senname
是否实际给出了一个值?请确定,您的文档中有多少元素带有id=“senpop”
?第二个数据调用可能与第一个不同。JSFIDLE只是在警告正确的值:
<!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>