jquery 如何将setSelectionRange与文档一起使用.getElementsByClassName?

fivyi3re  于 2022-11-22  发布在  jQuery
关注(0)|答案(2)|浏览(98)

如何将SetSelectionRangedocument.getElementsByClassName配合使用?我可以使用document.getElementById,但为什么不能使用document.getElementsByClassName
我想从文本区复制文本。我需要与类属性。
JavaScript语言

$('.get_copy').on('click', function() {
    var copyText  = document.getElementsByClassName('textareaclass');
    copyText.select();
    var start     = copyText.selectionStart;
    var end       = copyText.selectionEnd;
    copyText.setSelectionRange(start, end);
    document.execCommand("copy");
});

HTML语言

<textarea class="textareaclass">SAMPLE TEXT</textarea><button class="get_copy"></button>
<textarea class="textareaclass">SAMPLE TEXT 2</textarea><button class="get_copy"></button>
e3bfsja2

e3bfsja21#

这个问题是因为getElementsByClassName()返回一个集合,而不是单个元素。
从代码的上下文中看,您似乎想要检索与所单击的button相关的textarea。由于您已经将jQuery添加到页面中,因此可以使用prev()来完成此操作。或者,您可以使用原生的previousElementSibling属性,但这更脆弱,更容易损坏。
第一个

e0bqpujr

e0bqpujr2#

区别在于getElementById返回一个元素,因为每个ID只能有一个。但是getElementsByClassName返回一个节点列表,因为可以有多个节点使用同一个类。您可以使用[index]来获取所需的相应元素。
第一个

相关问题