javascript - 如何在 Material Design Lite 工具提示中使用类而不是 ID?

标签 javascript jquery material-design-lite

我需要为 data-mdl-for 使用 class 而不是 id 来在 JavaScript 中使用多个工具提示。我的工具提示按钮将由 JSON 生成。

<button id="tooltip" class="mdl-button mdl-js-button mdl-button--icon">
    <i class="material-icons lighticon">content_copy</i>
        <div class="mdl-tooltip mdl-tooltip--left" data-mdl-for="tooltip">
          Copy
        </div>
</button>

这工作正常,但我需要使用多个上述按钮元素。有没有可能的方法将按钮的 iddata-mdl-for 转换为 Javascript 并使用 querySelectorgetElementsByClassName 之类的东西 一个有效的工具提示?

var a = document.querySelector('.mdl-button');
a.data-mdl-for = "tooltip"

我知道这是一个错误的脚本,但这可以解释我真正需要的东西。我需要使用 JavaSript 提供有效的工具提示,而不是使用 data-mdl-for 或在 JavaScript 中指定 data-mdl-for 并使用按钮类。

最佳答案

//Get list
var mdlButtons = document.querySelectorAll(".mdl-button");
//Iterate over list
for (var i = 0; i < mdlButtons.length; i++) {
  //find child tooptip
  var child = mdlButtons[i].querySelector(".mdl-tooltip");
  if (child === null) {
    continue;
  }
  //Modify list
  child.setAttribute("data-mdl-for", mdlButtons[i].getAttribute("id"));
  console.log(child);
}
//Show a list of ".mdl-button" where we can see it has been modified
console.log(
  document.querySelectorAll(".mdl-button")
);
<button id="tooltip-1" class="mdl-button mdl-js-button mdl-button--icon">
  <i class="material-icons lighticon">content_copy</i>
  <div class="mdl-tooltip mdl-tooltip--left">
    Copy
  </div>
</button>
<button id="tooltip-2" class="mdl-button mdl-js-button mdl-button--icon">
  <i class="material-icons lighticon">content_copy</i>
  <div class="mdl-tooltip mdl-tooltip--left">
    Copy
  </div>
</button>
<button id="tooltip-3" class="mdl-button mdl-js-button mdl-button--icon">
  <i class="material-icons lighticon">content_copy</i>
  <div class="mdl-tooltip mdl-tooltip--left">
    Copy
  </div>
</button>

关于javascript - 如何在 Material Design Lite 工具提示中使用类而不是 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39392808/

相关文章:

javascript - 如何使用 JQuery 和 Material-Design-Lite 滚动到顶部

javascript - Material Design Lite 以编程方式触发 float 标签

javascript - 如果子元素和父元素具有相同的类,则不显示

javascript - 删除内部没有 <img> 的 DOM 生成元素

javascript - jQuery/Javascript 获取多个元素的类以显示具有该类的元素

html - 想要在右上角出现菜单图标按钮。在 Material Design Lite 中

javascript - 如何生成一个范围内的随机数但排除一些?

javascript - 提交表单后如何检查数据库中存在的文本框值

javascript - 我应该把 jQuery 脚本标签放在哪里?

javascript - 使用 JQuery 计算输入字段的简单百分比