简体   繁体   English

在for循环中使用时如何为按钮标签提供动态ID

[英]How to give dynamic id for button tag when using in for loop

When I execute below code, it will get a list of items from backend and for each item I will generate buttons, I want to call the copy-link-message when the user clicks the content_copy button but in my code it's working only for top button.当我执行下面的代码时,它将从后端获取项目列表,对于每个项目,我将生成按钮,我想在用户单击content_copy按钮时调用复制链接消息,但在我的代码中它仅适用于顶部按钮。 How can I apply the copy-link-message for each button created?如何为创建的每个按钮应用复制链接消息


Function:功能:

function append_files_to_list(path, files) {
  var $list = $("#list");
  var is_lastpage_loaded = null === $list.data("nextPageToken");
  var is_firstpage = "0" == $list.data("curPageIndex");
  html = "";
  let targetFiles = [];
  for (i in files) {
    var item = files[i];
    var p = path + encodeURIComponent(item.name).replaceAll("%5C", "%5C%5C").replace(/[!'()*]/g, escape) + "/";     // Adding folder name to url 
    if (item.size == undefined) {
      item.size = "";
    }
    item.modifiedTime = utc2local(item.modifiedTime);
    item.size = formatFileSize(item.size);
    if (item.mimeType == "application/vnd.google-apps.folder") {
      html += `<li class="mdui-list-item mdui-ripple"><a href="${p}" class="folder">
                <div class="mdui-col-xs-12 mdui-col-sm-7 mdui-text-truncate" title="${item.name}">
                <i class="mdui-icon material-icons">folder_open</i>
                  ${item.name}
                </div>
                <div class="mdui-col-sm-3 mdui-text-right">${item["modifiedTime"]}</div>
                <div class="mdui-col-sm-2 mdui-text-right">${item["size"]}</div>
                </a>
              <div class="mdui-col-sm-2 mdui-text-right dummyclass">
                  <button onclick="window.open('${p}','_blank')" class="mdui-textfield-icon mdui-btn mdui-btn-icon dummyclass" style="float: right;">
                  <i class="mdui-icon material-icons dummyclass">launch</i>
                </button>
                <button id="copy-link-message" onclick="(function setClipboard(value) {var tempInput = document.createElement('input');tempInput.style = 'position: absolute; left: -1000px; top: -1000px';tempInput.value = value;document.body.appendChild(tempInput);tempInput.select();document.execCommand('copy');document.body.removeChild(tempInput);})(window.location.protocol + '//' + window.location.hostname + '${p}')" class="mdui-textfield-icon mdui-btn mdui-btn-icon dummyclass" style="float: right;">
                  <i class="mdui-icon material-icons dummyclass">content_copy</i>
                </button>
              </div>
            </li>`;
    } else {
      var p = path + encodeURIComponent(item.name).replaceAll("%5C", "%5C%5C").replace(/[!'()*]/g, escape); // Adding file name to url
      var ddl_link = p;
      const filepath = path + item.name;
      var c = "file";
      if (is_lastpage_loaded && item.name == "README.md" && !UI.hide_readme_md) {
        get_file(p, item, function (data) {
          markdown("#readme_md", data);
        });
      }
      if (item.name == "HEAD.md" && !UI.hide_head_md) {
        get_file(p, item, function (data) {
          markdown("#head_md", data);
        });
      }
      var ext = p.split(".").pop().toLowerCase();
      if (
        "|html|php|css|go|java|js|json|txt|sh|md|mp4|webm|avi|bmp|jpg|jpeg|png|gif|m4a|mp3|flac|wav|ogg|mpg|mpeg|mkv|rm|rmvb|mov|wmv|asf|ts|flv|pdf|".indexOf(
          `|${ext}|`
        ) >= 0
      ) {
        targetFiles.push(filepath);
        p += "?a=view";
        c += " view";
      }
      if (item["size"] === ""){
        item["size"] = "— — —";
      }
      html += `<li class="mdui-list-item file mdui-ripple" target="_blank"><a gd-type="${item.mimeType}" href="${p}" class="${c}">
              <div class="mdui-col-xs-12 mdui-col-sm-7 mdui-text-truncate" title="${item.name}">
              <i class="mdui-icon material-icons">insert_drive_file</i>
                ${item.name}
              </div>
              <div class="mdui-col-sm-3 mdui-text-right">${item["modifiedTime"]}</div>
              <div class="mdui-col-sm-2 mdui-text-right">${item["size"]}</div>
              </a>
            <div class="mdui-col-sm-2 mdui-text-right dummyclass">
                <button onclick="window.open('${ddl_link}','_self')" class="mdui-textfield-icon mdui-btn mdui-btn-icon dummyclass" style="float: right;">
                <i class="mdui-icon material-icons dummyclass">file_download</i>
              </button>
              <button onclick="window.open('${p}','_blank')" class="mdui-textfield-icon mdui-btn mdui-btn-icon dummyclass" style="float: right;">
                <i class="mdui-icon material-icons dummyclass">launch</i>
              </button>
              <button id="copy-link-message" onclick="(function setClipboard(value) {var tempInput = document.createElement('input');tempInput.style = 'position: absolute; left: -1000px; top: -1000px';tempInput.value = value;document.body.appendChild(tempInput);tempInput.select();document.execCommand('copy');document.body.removeChild(tempInput);})(window.location.protocol + '//' + window.location.hostname + '${ddl_link}')" class="mdui-textfield-icon mdui-btn mdui-btn-icon dummyclass" style="float: right;">
                <i class="mdui-icon material-icons dummyclass">content_copy</i>
              </button>
            </div>
          </li>`;
    }
  }
  if (targetFiles.length > 0) {
    let old = localStorage.getItem(path);
    let new_children = targetFiles;
    if (!is_firstpage && old) {
      let old_children;
      try {
        old_children = JSON.parse(old);
        if (!Array.isArray(old_children)) {
          old_children = [];
        }
      } catch (e) {
        old_children = [];
      }
      new_children = old_children.concat(targetFiles);
    }
    localStorage.setItem(path, JSON.stringify(new_children));
  }
  $list.html(($list.data("curPageIndex") == "0" ? "" : $list.html()) + html);
  if (is_lastpage_loaded) {
    $("#count")
      .removeClass("mdui-hidden")
      .find(".number")
      .text($list.find("li.mdui-list-item").length);
  }
  $("#copy-link-message").on("click", () => {
      mdui.snackbar("Copied to clipboard!");
  });
}

Use $(selector).attr(attribute, value)使用$(selector).attr(attribute, value)

for example $('button').attr('id', 'primary-btn')例如$('button').attr('id', 'primary-btn')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用javascript给div标签赋予唯一ID - how to give a div tag a unique id using javascript 如何使用HTML和JS在foreach循环中为单个按钮创建动态ID - How to create dynamic id to a single button in foreach loop using html & js 如何为使用JavaScript动态创建的图像按钮赋予id? - How to give an id to a image button dynamically created using JavaScript? 在href标签中的onMouseOver时,如何在jQuery中分配动态元素ID? - How to assign dynamic element id in jQuery when onMouseOver in a href tag? 按下按钮时 JqGrid 给出 ID - JqGrid give ID when button pressed 如何在html中的button标签内给出一个href - how to give a href inside the button tag in html 单击“编辑”按钮时,如何使用jquery从循环表的每一行传递id? - How to pass the id from each row of a loop table using jquery when edit button is click? jQuery:如何添加具有动态ID的div,该ID在单击按钮时会递增? - jQuery: How to add div with a dynamic id that increments when button is clicked? 如何在javascript中为html标记id提供唯一的id - How to give html tag id a unique id in javascript 如何为 jquery 中的克隆 div 提供动态 id。 如何为克隆 div 提供动态 id? - How to give dynamic id to the clone div in jquery. how can i give dynamic id to the clone div?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM