我遇到的問題是使用復制該文本(單詞)的按鈕來定位下面 HTML 中輸入標記中的文本。我需要對 JS 進行什么更改才能使其以輸入值為目標?
我想在不使用 ID 的情況下執行此操作 - 因為我計劃多次復制它并且不想為輸入標簽設定單獨的 ID。
如果有一種方法可以參考類 - 'columns-small-8' - 子元素,那么這可能會起作用嗎?
提前致謝
JS
<script>
window.onload=function(){
let btns = document.getElementsByTagName("button")
Array.from(btns).forEach(ele => {
ele.addEventListener("click", function() {
jimsFunction(this)
});
})
function jimsFunction(input) {
let x = input.previousElementSibling
let ele = x.previousElementSibling
ele.select()
ele.setSelectionRange(0, 99999)
navigator.clipboard.writeText(ele.value)
alert("Copied: " ele.value)
}}
</script>
HTML
<div>
<div class="row collapse">
<div class="columns small-8">
<input type="text" value="words" readonly>
</div>
<div class="columns small-2">
<a class="button full-width secondary" href="www.google.com"
target="_blank">View</a>
</div>
<div class="columns small-2">
<button type="button" class="button full-width secondary">Copy URL</button>
</div>
</div>
</div>
uj5u.com熱心網友回復:
使用您的 html 結構,您可以呼叫它的父級,如下所示:
window.onload=function(){
let btns = document.getElementsByTagName("button")
Array.from(btns).forEach(ele => {
ele.addEventListener("click", function() {
jimsFunction(this)
});
})
function jimsFunction(input) {
let x = input.parentElement.parentElement
let ele = x.firstElementChild.firstElementChild
ele.select()
ele.setSelectionRange(0, 99999)
navigator.clipboard.writeText(ele.value)
alert("Copied: " ele.value)
}}
<div>
<div class="row collapse">
<div class="columns small-8">
<input type="text" value="words" readonly>
</div>
<div class="columns small-2">
<a class="button full-width secondary" href="www.google.com"
target="_blank">View</a>
</div>
<div class="columns small-2">
<button type="button" class="button full-width secondary">Copy URL</button>
</div>
</div>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/484842.html
標籤:javascript 数组 dom 按钮 复制
下一篇:如何安裝反應導航?
