我已经意识到我在JS / jQuery上几十年来没有使用过它。
我正在使用jQuery Zclip复制列表中的文字。但我发现它首先只适用于每页一个元素。我找到了一个解决方案,为每个列表项使用不同的ID,但这将在未来创建大量不必要的工作,因为会有大量的按钮。
我需要的是一个函数,它在按钮元素之后检查span元素并从中获取内容,而不是从特定ID中获取内容。我怎样才能通过jquery实现这个目标?
这是我的HTML / JS
<li><span class="server-name">SERVER NAME</span>
<br><button class="copy">COPY</button>IP:<span class="server-ip">127.0.0.1</span>
</li>
jquery的
$(document).ready(function () {
$('button.copy').zclip({
path: 'scripts/ZeroClipboard.swf',
copy: $('span.description').text()
});
我希望你理解我的问题。
答案 0 :(得分:4)
看起来copy
参数可以是一个函数。如果在当前按钮的上下文中调用它(并且看起来像是这样),那么下一个代码应该可以正常工作:
$('button.copy').zclip({
path: 'scripts/ZeroClipboard.swf',
copy: function() {
return $(this).next('.server-ip').text();
}
});
答案 1 :(得分:3)
为您的li
提供课程(类似info
:
<li class="info">
<span class="server-name">SERVER NAME</span>
<button class="copy">COPY</button>
IP:<span class="server-ip">127.0.0.1</span>
</li>
在你的JS中:
$(document).ready(function () {
// loop through all `.info` elements
$('.info').each(function () {
// get the button
var $button = $(this).find('.copy');
// get the ip element
var $ip = $(this).find('.server-ip');
// make button zclip
$button.zclip({
path: 'scripts/ZeroClipboard.swf',
// the text of ip
copy: $ip.text()
});
});
});
答案 2 :(得分:3)
你需要使用像
这样的副本$('button.copy').zclip({
path: 'scripts/ZeroClipboard.swf',
copy: function() {
return $(this).next('.server-ip').text(); //this here refers to element which invoked zclip
}
});
您可以浏览source code
o.bind('zClip_copy',settings.copy);
答案 3 :(得分:0)
我不知道zclip
,但你需要从按钮后面的下一个元素中选择文字,所以第四行应该是:
copy: $(this).next('.server-ip').text()