как получить значение элемента?
Господа, у меня есть некий HTML код и мне из JS нужно получить значение которое стоит в аттрибуте.
<div class="col-1"> <input type="checkbox" class="" data-column="1" id="depotID" ng-change="vm.coluVisi()" ng-model="vm.depotID"> </div> мне нужно получить то, что стоит в data-column, то есть "1". Я это делаю так: var tmp = $(this).attr('data-column') В итоге в tmp находится NaN. Что неправильно? |
Цитата:
|
<html> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div class="col-1"> <input type="checkbox" class="" data-column="1" id="depotID" ng-change="vm.coluVisi()" ng-model="vm.depotID"> </div> <script type="text/javascript"> let input_value = document.querySelector(".col-1 > input"); let val = input_value.attributes[2].nodeValue; console.log(val); </script> </body> </html> Можно так. В твоем случае "this" не является инпутом прежде чем обращаться к элементу смотрите на него через "console.log" |
oleg901,
на всякий случай атрибут run для запуска здесь, и dataset для data-атрибутов [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
oleg901, рони,
у меня 42 чекбокса. мне нужно возвращать номер чекбокса. Ваш код возвращает всегда "1". Как мне вернуть номер чекбокса? <div class="container-fluid no-pad"> <div class="row"> <div class="col-1"> <input type="checkbox" class="" data-column="1" id="depotID" ng-change="vm.coluVisi()" ng-model="vm.depotID"> <label class="" for="">DepotID</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="2" id="depotBezeichnung" ng-change="vm.coluVisi()" ng-model="vm.depotBezeichnung"> <label class="" for="">DepotBezeichn.</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="3" id="plattform" ng-change="vm.coluVisi()" ng-model="vm.plattform"> <label class="" for="">Plattform</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="4" id="bezeichnung" ng-change="vm.coluVisi()" ng-model="vm.bezeichnung"> <label class="" for="">Bezeichnung</label> </div> <div class="col-1"> <input type="checkbox" class="" id="handelstag" ng-change="vm.coluVisi()" ng-model="vm.handelstag"> <label class="" for="">Handelstag</label> </div> <div class="col-1"> <input type="checkbox" class="" id="iSIN" ng-change="vm.coluVisi()" ng-model="vm.iSIN"> <label class="" for="">ISIN</label> </div> <div class="col-1"> <input type="checkbox" class="" id="geschaeftsart" ng-change="vm.coluVisi()" ng-model="vm.geschaeftsart"> <label class="" for="">Geschaeftsart</label> </div> <div class="col-1"> <input type="checkbox" class="" id="stueckzahl" ng-change="vm.coluVisi()" ng-model="vm.stueckzahl"> <label class="" for="">Stueckzahl</label> </div> <div class="col-1"> <input type="checkbox" class="" id="kurswaehrung" ng-change="vm.coluVisi()" ng-model="vm.kurswaehrung"> <label class="" for="">Kurswaehrung</label> </div> ........ ........ ........ |
lego9,
возможно вам нужен специалист по Angular. Цитата:
|
let datavalue = document.getElementById(' Id inputa ').dataset('column')
Вместо document.getElementById(' Id inputa ') можете как угодно получить ваш инпут. |
Цитата:
|
Господа, еще раз спасибо ответившим. Для меня всё что связано с фронтом сущий кошмар...
Я к сожалению не все понял из Ваших двух последних постов, чтобы не тратить Ваше время, опишу подробнее. С большими кусками кода. У меня есть 42 чек-бокса по которым мне надо включать и отключать видимость столбцов. Вот HTML для чекбоксов: <div class="container-fluid no-pad"> <div class="row"> <div class="col-1"> <input type="checkbox" class="" data-column="1" id="depotID" ng-change="vm.coluVisi()" ng-model="vm.depotID"> <label class="" for="">DepotID</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="2" id="depotBezeichnung" ng-change="vm.coluVisi()" ng-model="vm.depotBezeichnung"> <label class="" for="">DepotBezeichn.</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="3" id="plattform" ng-change="vm.coluVisi()" ng-model="vm.plattform"> <label class="" for="">Plattform</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="4" id="bezeichnung" ng-change="vm.coluVisi()" ng-model="vm.bezeichnung"> <label class="" for="">Bezeichnung</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="5" id="handelstag" ng-change="vm.coluVisi()" ng-model="vm.handelstag"> <label class="" for="">Handelstag</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="6" id="iSIN" ng-change="vm.coluVisi()" ng-model="vm.iSIN"> <label class="" for="">ISIN</label> </div> <div class="col-1"> <input type="checkbox" class="" data-column="7" id="geschaeftsart" ng-change="vm.coluVisi()" ng-model="vm.geschaeftsart"> <label class="" for="">Geschaeftsart</label> </div> и т.д. ............... ............... </div> И вот функция в AngularJS компоненте, котороя нуждается в значении data-column="ХХ": function coluVisi() { // Get the column API object var XX = $(this).attr('data-column'); // не правильно! Но Мне нужно как то получить ХХ var col = vm.dtInstance.DataTable.column(XX); // Toggle the visibility col.visible(!col.visible()); } Мне нужно как то получить ХХ, я бъюсь уже непозволительное количество часов! Это же скорее всего как-то очень не сложно, но я почему то не могу найти как написать... HELP |
Не работал с angular, но попробуйте в html
ng-change="vm.coluVisi()"заменить на ng-change="vm.coluVisi($event)", и слушатель изменить на: function coluVisi($event) { var target = $event.currentTarget; // Get the column API object var col = vm.dtInstance.DataTable.column(target.dataset.column); // Toggle the visibility col.visible(!col.visible()); } Ну и откровенно говоря не понимаю, почему вы слушателю сразу не можете передавать номер колонки, если у вас data-атрибут все равно руками заполняется. |
Часовой пояс GMT +3, время: 19:08. |