如何将SetSelectionRange
与document.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>
2条答案
按热度按时间e3bfsja21#
这个问题是因为
getElementsByClassName()
返回一个集合,而不是单个元素。从代码的上下文中看,您似乎想要检索与所单击的
button
相关的textarea
。由于您已经将jQuery添加到页面中,因此可以使用prev()
来完成此操作。或者,您可以使用原生的previousElementSibling
属性,但这更脆弱,更容易损坏。第一个
e0bqpujr2#
区别在于
getElementById
返回一个元素,因为每个ID只能有一个。但是getElementsByClassName
返回一个节点列表,因为可以有多个节点使用同一个类。您可以使用[index]
来获取所需的相应元素。第一个