我使用的Clipboard.js插件一个网站,并坚持问题选择唯一的父类的.copy按钮点击。
问题是,我希望用富文本格式复制pre标记中的代码,而我使用的方法很好(return document.querySelector("myClass")),但是当我用我在一个类似问题(return $(trigger).closest(".fw-code-copy").next("code").text();)中找到的代码更改前面的代码时,我可以复制每个块的代码但放松格式设置,我的意思是代码被复制为纯文本。
请您回顾一下我的代码,并建议如何找到按钮的父类。
HTML
<div class="code-snippet">
<pre class="code">
<div>
some code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>
<div class="code-snippet">
<pre class="code">
<div>
some other code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>CSS
.code-snippet{
position: relative;
width: 100%;
bordeR: 1px solid red;
margin-bottom: 20px;
}
.copy{
position: absolute;
right: 20px;
bottom: 20px;
}JS
$(document).ready(function(){
var clipboard = new Clipboard('.copy', {
target: function() {
return document.querySelector('.code');
}
});
});发布于 2016-01-30 13:48:51
您可以通过选择器使用jQuery .closest()从祖先获取第一个元素:
$(document).ready(function(){
var clipboard = new Clipboard('.copy', {
target: function(trigger) {
return $(trigger).closest('.code-snippet').find('.code').get(0);
}
});
});.code-snippet {
position: relative;
width: 100%;
border: 1px solid red;
margin-bottom: 20px;
}
.copy {
position: absolute;
right: 20px;
bottom: 20px;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/clipboard.js/1.5.5/clipboard.min.js"></script>
<div class="code-snippet">
<pre class="code">
<div>
some code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>
<div class="code-snippet">
<pre class="code">
<div>
some other code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>
发布于 2016-01-30 13:50:24
我觉得这个应该管用。在目标函数中甚至不需要jQuery:
$(document).ready(function(){
var clipboard = new Clipboard('.copy', {
target: function(trigger) {
return trigger.previousElementSibling;
}
});
});片段:
$(document).ready(function() {
var clipboard = new Clipboard('.copy', {
target: function(trigger) {
return trigger.previousElementSibling;
}
});
});.code-snippet {
position: relative;
width: 100%;
bordeR: 1px solid red;
margin-bottom: 20px;
}
.copy {
position: absolute;
right: 20px;
bottom: 20px;
}
.code {
color: purple;
}<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.5/clipboard.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="code-snippet">
<pre class="code">
<div>
some code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>
<div class="code-snippet">
<pre class="code">
<div>
some other code
</div>
</pre>
<input class="copy" type="button" value="copy">
</div>
https://stackoverflow.com/questions/35102429
复制相似问题