Как получить доступ к данным из атрибута data* с помощью JavaScript?

Сценарий: когда пользователь нажимает на него, данные должны быть переданы в someFunction().

<span id = "someid" onClick = {() => someFunction()} data-video-page = "some data" class = "dot" />`

Я пытался использовать методы getAttributes(), querySelector() до сих пор, чтобы получить данные из атрибутов данных. Но один из них работает, на самом деле они не возвращаются.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Доступ к атрибуту data* можно получить с помощью метода getAttribute().

Пример 1:

var data = document.getAttribute('data*');

Пример 2:

var element = document.querySelector('div');
var data = element.getAttribute('data');
Ответ принят как подходящий

В вашем вопросе есть тег React.js, поэтому я предполагаю, что это для использования data-set в React.js.

Для React.js именно так можно использовать набор данных, если вы хотите передать данные какой-либо функции в событии щелчка. Вы также можете посетить живую демонстрацию здесь: stackblitz

const handleClick = (event) => {

  // Your data is stored in event.currentTarget.dataset
  // Here we get the data by destructuring it
  // The name video-page need to change to videoPage for JS rules

  const { videoPage } = event.currentTarget.dataset;
  console.info(videoPage);

  // Result printed: "your data"
  // You can also run someFunction(videoPage) here
};

export default function App() {
  return (
    <button data-video-page = "your data" onClick = {handleClick}>
      TEST
    </button>
  );
}


Рабочий фрагмент

const someFunction = console.info;

function App() {
    return (
        <span id = "someid" 
          onClick = {(e) => {
            const videoPage = event.target.dataset['videoPage'];
            someFunction(videoPage)
          }} 
          data-video-page = "some data" 
          className = "dot" 
        >
        click me
        </span>
     )
}

ReactDOM.render(<App />, document.getElementById('root'));
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

<div id = "root"></div>

Другие вопросы по теме