javascript - 在jquery中复制由换行符分隔的多个li文本

标签 javascript jquery html

我在 li 中有数据,如图所示,当我单击复制时,它应该复制到剪贴板,如下所示

a[tab]b
c[tab]d
e[tab]f

JavaScript 代码在这里

function copy(element) {
    var $temp = $("<input>");
    $("body").append($temp);
    $temp.val($(element).parent().text()).select();
    document.execCommand("copy");
    $temp.remove();
    $(element).parent().effect("highlight", {}, 1000);
}

<ul>
    <li>a<br/>b</li>
    <li>c<br/>c</li>
    <li>e<br/>f</li>
</ul>

最佳答案

尝试下面的代码片段,

function copy(element) {
    // use textarea instead of input because newline character is skipped from it
    var $temp = $("<textarea/>");
    $("body").append($temp);
    // making a clone to prevent affecting original ul
    var clone = $(element).parent().clone();
    // now replacing br with tab
    $(clone).find('br').replaceWith("\t");
    $temp.val(
      // get all li text using map
      clone.map(function(){  
        return $(this).text()
      }).get().join("\n") // get and join by new line
      ).select();
    document.execCommand("copy");
    $temp.remove();
}

$('button').on('click',function(){
    copy($('ul').find('li'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li>a<br/>b</li>
    <li>c<br/>c</li>
    <li>e<br/>f</li>
</ul>

<button>Copy</button> 

关于javascript - 在jquery中复制由换行符分隔的多个li文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44276380/

相关文章:

html - 如何使此横幅看起来像 Urban Outfitters 的横幅?

javascript 拆分和匹配不起作用(解析可扩展搜索)

javascript - 单击按钮时更改选项卡

javascript - 出现垂直滚动条时,如何阻止我的网页内容向左移动? 2017 年建议汇总

javascript - 剑道格动态编辑

html - CSS:如何阻止悬停效果推送我的文本?

JavaScript 如何将鼠标光标更改为图像?

javascript - 如何Vue v-if等于或包含

javascript - Twitter Typehead.JS - 使用 AJAX 调用的自定义 div

javascript - 如何使用 jQuery 将动态 key 对值发送到 PHP?