Я не получаю значение идентификатора данных из элемента span при нажатии.
function getvalue() {
alert($(this).data('id'));
alert($(this).attr('data-id'));
alert($(this).data('test'));
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class = "myclass" data-id = "bcd" data-test = "sjd" onclick = "getvalue(this)">click here</span>чтобы получить данные из data-id и data-test на элементе span, нажмите Еще одна вещь, которую я создал динамически, поэтому я не могу сделать щелчок, используя #id. Пожалуйста, помогите.

Проблема в том, что вы используете атрибут события on*, поэтому this в функции является window, а не элементом, вызвавшим событие. Вы передаете элемент в качестве аргумента функции, поэтому вам просто нужно определить аргумент в сигнатуре функции, например:
function getvalue(el) {
console.info($(el).data('id'));
console.info($(el).attr('data-id'));
console.info($(el).data('test'));
}<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class = "myclass" data-id = "bcd" data-test = "sjd" onclick = "getvalue(this)">click here</span>При этом вам не следует использовать атрибуты событий, поскольку они очень устарели и в результате считаются плохой практикой. Вместо этого используйте ненавязчивые обработчики событий.
В вашем вопросе также говорится, что элементы добавляются динамически, поэтому в этом случае вам нужно будет использовать делегированный обработчик событий. Таким образом, вы можете использовать on():
$(function() {
$(document).on('click', '.myclass', function() {
console.info($(this).data('id'));
console.info($(this).data('test'));
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class = "myclass" data-id = "bcd" data-test = "sjd">click here</span>Также обратите внимание на использование console.info() для отладки вместо alert(). Последнего следует избегать, так как он принуждает типы данных, что может скрыть проблемы, а также является модальным, что раздражает.
Вы отправляете this функции в вызове getvalue. el — это определение аргумента в самой функции. Я бы посоветовал прочитать несколько руководств по JS о том, как работают функции, например: medium.com/front-end-weekly/…
Спасибо @Rory McCrossan, да, я использовал console.info до того, как увидел, что все окно переходит к «этому», но я его пропустил. :) Большое спасибо, вы сэкономили мое время.
Также обратите внимание, что окно не «передается» функции как таковой, но функция выполняется в рамках этого объекта.
Понял, спасибо. @Рори МакКроссан
Спасибо, это работает @Rory McCrossan, поэтому использование «this» отправляло все окно в мою функцию? Не могли бы вы объяснить, что на самом деле сделал 'el' в getvalue(el) ?