Javascript 仅选择具有类名的同级的div中的文本,该同级具有许多相同类名的族

Javascript 仅选择具有类名的同级的div中的文本,该同级具有许多相同类名的族,javascript,jquery,html,parent,siblings,Javascript,Jquery,Html,Parent,Siblings,我想在点击复制按钮时复制文本。但是,当按下三个按钮中的任何一个时,它会复制最后一段文字。它假设在单击特定按钮时查找以前的同级并复制该文本 这是我的密码。我想,我在兄弟姐妹的事情上出错了。让我知道我做错了什么: //查找要复制的文本 $document.readyfunction{ $document.on'click','phc hashtags框按钮',函数{ $this.closest'.phc hashtags box'.find'.phc hashtags box tags'; 复制=

我想在点击复制按钮时复制文本。但是,当按下三个按钮中的任何一个时,它会复制最后一段文字。它假设在单击特定按钮时查找以前的同级并复制该文本

这是我的密码。我想,我在兄弟姐妹的事情上出错了。让我知道我做错了什么:

//查找要复制的文本 $document.readyfunction{ $document.on'click','phc hashtags框按钮',函数{ $this.closest'.phc hashtags box'.find'.phc hashtags box tags'; 复制=复制+this.text; }; }; 函数copyToClipboardelement{ var$temp=$; $'body'。附加$temp; $temp.val$element.text.select; document.execCommand'copy'; $temp.remove; } 狗1

dog dog dog Stagram instadog dog dog Instagram worldofdogs dogs Slove CutedDog dog dog igdogs dog dog dog dog dog Day的宠物狗myfriend dog Lover ilovemydog ilovedog dog Love dog dog dog Love dog dog Life mydog Happy dog

复制 狗2

dog dog dog stagram instadog dog dog dogs instagram world of dogs dogs dogs slove cutedog dog doggy igdogs dogs dogs dogs dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog do

复制 狗3

dog dog dog stagram instadog dog dog dogs instagram world of dogs dogs dogs slove cutedog dog doggy igdogs dogs dogs dogs dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog dog do

复制 与其按类拾取获取该类的所有元素,不如将您的查找限制为按钮的父div,它将只获取相关文本:

$(document).ready(function(){
    $(document).on('click', '.phc-hashtags-box-button', function () {
        $(this).parent().find('.phc-hashtags-box-tags');  // notice the change on this line.
        copy = copy +$(this).text();
    });
});
编辑:

工作解决方案:

现在我注意到,您没有向copyToClipboard传递任何元素

<button onclick="copyToClipboard('.phc-hashtags-box-tags')" class="phc-hashtags-box-button">Copy</button>
正在发送保存以复制与此一起找到的3中的最后一个元素。请尝试:

<button onclick="copyToClipboard($(this).parent())" class="phc-hashtags-box-button">Copy</button>
与其按类拾取获取该类的所有元素,不如将您的查找限制为按钮的父div,它将只获取相关文本:

$(document).ready(function(){
    $(document).on('click', '.phc-hashtags-box-button', function () {
        $(this).parent().find('.phc-hashtags-box-tags');  // notice the change on this line.
        copy = copy +$(this).text();
    });
});
编辑:

工作解决方案:

现在我注意到,您没有向copyToClipboard传递任何元素

<button onclick="copyToClipboard('.phc-hashtags-box-tags')" class="phc-hashtags-box-button">Copy</button>
正在发送保存以复制与此一起找到的3中的最后一个元素。请尝试:

<button onclick="copyToClipboard($(this).parent())" class="phc-hashtags-box-button">Copy</button>

我相信,当您将“.phc hashtags box tags”传递给按钮元素的onclick attr时,它将所有元素与该类匹配,并返回函数值的最后一个匹配项

相反,请尝试将按钮onclick处理程序更改为:

copyToClipboard$this

也就是说,execCommand函数在提供的代码段中不起作用,因此很难进行验证


也许可以尝试传递ID,或者尝试构建一个更优雅的解决方案。随着复杂性的增加,如此多的相对jQuery选择器将不可避免地导致错误。

我相信,当您将“.phc hashtags box tags”传递给按钮元素的onclick attr时,它会将所有元素与该类匹配,并返回函数值的最后一个匹配项

相反,请尝试将按钮onclick处理程序更改为:

copyToClipboard$this

也就是说,execCommand函数在提供的代码段中不起作用,因此很难进行验证


也许可以尝试传递ID,或者尝试构建一个更优雅的解决方案。随着复杂性的增加,如此多的相对jQuery选择器将不可避免地导致bug。

为了澄清我对代码的理解:1。你点击一个按钮。2.一个输入元素被附加到body元素的末尾。3.此输入由单击元素的文本值填充。4.您可以运行execCommand来复制此内容。5.移除输入元素。这是否准确?输入文本必须是单击相应按钮上方的文本。在这里,我的代码复制了所有3个按钮的最后一个。你点击一个按钮。2.一个输入元素被附加到body元素的末尾。3.此输入由单击元素的文本值填充。4.您可以运行execCommand来复制此内容。5.移除输入元素。这是否准确?输入文本必须是单击相应按钮上方的文本。在这里,我的代码复制了所有3个按钮的最后一个。我不清楚。这种变化没有任何区别。解释please@SubashMatheswaran的确,你是对的。问题在于我的编辑的副本检查。我相信只要将其更改为copyToClipboard$,他当前的代码也能正常工作。@CodeAt30,我的答案是错误的,你是对的,我已经相应地更新了它。但是,我认为您的解决方案可能存在问题,因为用户试图只选择段落元素的文本,而不是父.phc hashtags box容器元素。我尝试了copyToClipboard$this.parent,而不是copyToClipboard$this.prev,它起作用了。谢谢你的帮助,我不太清楚。变化
没什么区别。解释please@SubashMatheswaran的确,你是对的。问题在于我的编辑的副本检查。我相信只要将其更改为copyToClipboard$,他当前的代码也能正常工作。@CodeAt30,我的答案是错误的,你是对的,我已经相应地更新了它。但是,我认为您的解决方案可能存在问题,因为用户试图只选择段落元素的文本,而不是父.phc hashtags box容器元素。我尝试了copyToClipboard$this.parent,而不是copyToClipboard$this.prev,它起作用了。谢谢你的帮助。