首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取被点击的li(Javascript,Materialize)的变量?

如何获取被点击的li(Javascript,Materialize)的变量?
EN

Stack Overflow用户
提问于 2021-07-02 06:34:32
回答 1查看 27关注 0票数 0

我有3个li's,想要得到被点击的li的所有变量(name,distance,Ort,PLZ)。我是Javascript的新手,非常感谢大家的帮助。

代码语言:javascript
复制
  const li = `
  <li id= "${doc_id}">
    <div class="collapsible-header grey lighten-4 right-align"> ${name} ${distance}km from you (${Ort},${PLZ}) </div>
    <div class="collapsible-body white"><span>hey</span>
  </li>
  <li id= "${doc_id}">
    <div class="collapsible-header grey lighten-4 right-align"> ${name} ${distance}km from you (${Ort},${PLZ}) </div>
    <div class="collapsible-body white"><span>wassup</span>
  </li>
  <li id= "${doc_id}">
    <div class="collapsible-header grey lighten-4 right-align"> ${name} ${distance}km from you (${Ort},${PLZ}) </div>
    <div class="collapsible-body white"><span>lol</span>
  </li>
`;
html += li;
代码语言:javascript
复制
console.log(name,distance,Ort,PLZ)
//expectation
EN

回答 1

Stack Overflow用户

发布于 2021-07-02 07:13:32

由于在创建LI标记时循环中有您想要的数据,因此可以将该信息作为数据属性插入,以便在用户单击时轻松检索。在下面的可测试代码片段中的注释中有更多解释。

代码语言:javascript
复制
// dummy data
let doc_id = 12,name = "McDonalds",distance = 123,Ort = 1,PLZ = 2

// in the div tag below, notice how I added data-attributes for distance and name
const li = `
  <li id="${doc_id}">
    <div data-name="${name}" data-distance="${distance}" class="collapsible-header grey lighten-4 right-align"> ${name} ${distance}km from you (${Ort},${PLZ}) </div>
    <div class="collapsible-body white"><span>hey</span>
  </li>
`;

// wait until the page is loaded before adding listners
window.addEventListener('load', () => {
  document.querySelector('ul').innerHTML = li; // set up our dummy data for the example

  // listen to the click on the div
  document.addEventListener('click', (e) => {
    // check if we have clicked on one of our div tags
    if (e.target.dataset.distance !== '') {
      // we can access those data attributes with e.target.dataset.ITEM
      // the id is on the LI tag, so we grab that from the parentNode property
      console.log(`Clicked on! id: ${e.target.parentNode.id}, name: ${e.target.dataset.name}, distance: ${e.target.dataset.distance} `);
    }
  })

})
代码语言:javascript
复制
<ul></ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68217646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档