Вызвать значение из HTML тега с помощью класса
Так как я реально чайник.
Объясните возможно ли извлечь значение с помощью класса? Дело в следующем, я хочу сделать виртуальную клавиатуру таким образом: <div id="display"></div> <div id="KeyQ" class="key" value="Q">Q</div> <div id="KeyW" class="key" value="W">W</div> <div id="KeyE" class="key" value="E">E</div> Я могу вывести буквы в тег с идентификатором #display таким образом с помощью идентификатора: KeyQ.onclick = function() { document.getElementById("display").innerHTML = "Q"; } Но таким образом придётся каждому создавать отдельное событие, таким образом код палучится бесконечным. Я бы хотел вместит все действие в одну функцию используя клас "key" и брат значение у того элемента который был задиствован. По своей логике сделал так но получаю undefined: key.onclick = function() { var val = document. querySelector(".key").value; document.getElementById("display").innerHTML = val; } Может с помощью this который я не понял как он вообще работает или другой метод. |
<style> #display { height:20px; } .key { display:inline-block; border:1px solid black; } </style> <div id="display"></div> <div id="keys"> <div id="KeyQ" class="key">Q</div> <div id="KeyW" class="key">W</div> <div id="KeyE" class="key">E</div> </div> <script> document.getElementById("keys").onclick = function(e) { if (e.target != e.currentTarget) { document.getElementById("display").innerText += e.target.innerText; } } </script> |
Цитата:
|
Здесь нужна проверка источника события. Можно проверять по имени класса, а можно кнопки сделать к примеру элементами SPAN и проверять имя тега. И если условие выполняется, только тогда принимать ввод.
|
Amilo,
Добавил проверку по рекомендации laimas |
Спасибо вам вот теперь то что надо :)
|
Dilettante_Pro,
currentTarget не все гладко с поддержкой. |
laimas,
В Internet Explorer с 6 по 8 ? Это актуально? По мобильным - да. (на смартфоне в Хроме под Андроидом работает) Но ТС только начинает тему - у него еще много проблем появится |
Да вроде бы и в Сафари не все Ок, или уже есть поддержка?
|
laimas,
Вроде нету - проверить не могу, у меня надкушенных яблок нету. Дома вечером у жены отберу - гляну. |
Часовой пояс GMT +3, время: 00:49. |