我有几个具有不同背景颜色的li
标记。我想当用户点击每个li
标签时,获取特定项目的背景颜色并将其复制到剪贴板。
$('li.col').click(function () {
var x = $(this).css('backgroundColor');
})
我怎么能这么做?
到目前为止你的方法是正确的。您可以使用30secondsofCode(我维护的一个项目/网站)中的copytoclipboard
方法来处理这个问题。来自网站:
创建一个新的元素,用提供的数据填充它并将其添加到HTML文档中。使用
selection.getrangeat()
存储所选范围(如果有)。使用document.execcommand('copy')
复制到剪贴板。从HTML文档中删除元素。最后,使用
selection().addrange()
恢复原始选定范围(如果有)。
null
const copyToClipboard = str => {
const el = document.createElement('textarea');
el.value = str;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
const selected =
document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;
el.select();
document.execCommand('copy');
document.body.removeChild(el);
if (selected) {
document.getSelection().removeAllRanges();
document.getSelection().addRange(selected);
}
};
$('li.col').click(function() {
var x = $(this).css('backgroundColor');
copyToClipboard(x);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="col" style="background:red;">Red</li>
<li class="col" style="background:green;">Green</li>
<li class="col" style="background:blue;">Blue</li>
</ul>