Мне удалось получить печать атрибутов данных в 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>
... потому что вы привязываете обработчик click
к#Settings
элемент.Убедитесь, что элемент #Settings
не является <a>
, потому что он недопустим для вложения тегов <a>
.
Далее, убедитесь, что jQuery и ваш js-скрипт расположены чуть выше закрывающего </body>
тег, который является лучшей практикой
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<script src="/js/yourscript.js"></script>
</body>
... или, оберните ваш скрипт в document.ready
, если вы не можете добавить скрипт в тело по любой причине:
$( 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>
Вот скриншот запуска этого кода и нажатия #senpop
:
