Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不知道我的HTML和jQuery实现有什么问题_Html_Jquery - Fatal编程技术网

我不知道我的HTML和jQuery实现有什么问题

我不知道我的HTML和jQuery实现有什么问题,html,jquery,Html,Jquery,我对HTML和jQuery非常陌生,这可能是一个愚蠢的问题,但是,相信我,我已经尝试了所有我认为有意义的东西 因此,我正在制作一个网站,已经为我的mc服务器预建。它使用有意义的.twig文件。我的目标是添加一个按钮,按下该按钮时,会将服务器IP复制到剪贴板。我从这个链接在线找到了这个代码:它应该可以工作。我复制了HTML按钮并将其粘贴到我的头文件中: <button onclick="copyToClipboard('ip')">IP</button> 我尝试了多种方法

我对HTML和jQuery非常陌生,这可能是一个愚蠢的问题,但是,相信我,我已经尝试了所有我认为有意义的东西

因此,我正在制作一个网站,已经为我的mc服务器预建。它使用有意义的.twig文件。我的目标是添加一个按钮,按下该按钮时,会将服务器IP复制到剪贴板。我从这个链接在线找到了这个代码:它应该可以工作。我复制了HTML按钮并将其粘贴到我的头文件中:

<button onclick="copyToClipboard('ip')">IP</button>
我尝试了多种方法。我尝试创建一个新的jS文件并使用 并制作一个实际的方块:

<script>
function copyToClipboard(element) {
   var $temp = $("<input>");
   $("body").append($temp);
   $temp.val($(element).text()).select();
   document.execCommand("copy");
   $temp.remove();
}
</script>
但是,每当我单击按钮时,它不会复制任何内容。 我公然做错了什么,我将感谢任何帮助。 谢谢

这就是我所拥有的:

<button id="copyButton" onclick="copyToClipboard()">ip.adress.net</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
let copyButton = document.getElementById("copyButton");

function copyToClipboard() {
    let $temp = $("<input>");
    $("body").append($temp);
    $temp.val(copyButton.innerText).select();
    document.execCommand("copy");
    $temp.remove();
}
</script>
更新:
我试过Tryit编辑器,只是代码工作得很完美,但是由于某种原因,它不在我的网站上,我现在很迷茫…

我认为你复制的按钮代码是错误的。 下面是教程中的内容

<button onclick="copyToClipboard('#p1')">Copy TEXT 1</button>
您的缺少表示html元素id的。

您实际上可以使用该元素的.innerText

解决方案-

<script>
let copyButton = document.getElementById("copyButton");

function copyToClipboard() {
    let $temp = $("<input>");
    $("body").append($temp);
    $temp.val(copyButton.innerText).select();
    document.execCommand("copy");
    $temp.remove();
}
</script>
如果您正在寻找一种不同的方法,只需将您的函数替换为上面的函数

这是在这里发现的-


我希望这有帮助!祝您在编码过程中好运

除非您的页面有标记(我假设没有),否则ip字符串不是有效的选择器。您显示的是jQuery。你包括那个图书馆吗?我想你有。。。在某处为此,您需要ip作为选择器。$element正在页面上选择一个元素。如果您查看链接到的代码笔,您对copyToClipboard的方法调用与他们的方法调用不匹配。它是固定IP吗?如果是这样,您可以在IP.select中使用$temp.VAL;相反未理解而复制的代码将创建一个输入元素,然后用指定元素的内容填充该元素,然后选择复制的文本。您通过传递ip选择器来指定元素,但该选择器尝试选择一个不存在的HTML元素。我尝试了.innerText,它在Tryit中工作,但在网站上不工作。我不知道发生了什么事
const copyToClipboard = str => {
        const el = document.createElement('textarea');
        el.value = str;
        document.body.appendChild(el);
        el.select();
        document.execCommand('copy');
        document.body.removeChild(el);
    };
};