我有一个复制文本的'div',我可以将其粘贴到其他地方。
<div id="div1">
<div>
Positive Comments:
<br/>
<textarea id="txtArea" rows="3" name="txtCommentPositive#CurrentRow#">
#reReplaceCommentpositive
</textarea>
</div>
<div>
Negative Comments:
<br/>
<textarea rows="3" name="txtCommentNegative#CurrentRow#">
#reReplaceCommentnegative#
</textarea>
</div>
<input type="button" id="btn" value="copy" onclick="copyText()" />
</div>
当它获得第一个div1时,它有一个结果,但是当它有两个或更多结果时,即使我点击'copy'它也会复制第一个文本。 我怎么能得到它将分别复制每个div?
这是我的javascript:
function copyText() {
var copyDivText = document.getElementById('div1').innerText;
var returnVal = window.clipboardData.setData('Text', copyDivText);
alert(returnVal);
document.getElementById('div2').innerText = window.clipboardData.getData('Text');
}
答案 0 :(得分:0)
在无数次重新阅读您的问题后,突然点击了它:似乎就像您想要使用div1
中的代码作为您可以重复使用的“模式”。
但是,您的javascript目前只有一个div- id 硬编码。
我不知道该怎么做div2
(来自你的函数)所以我把它(作为示例)更改为textarea
(id
} clipboardText
)将显示刚刚复制到剪贴板的文本内容。
为了简单起见(保持与你当前的代码逻辑/样式一致),我建议按钮是div的直接子节点,它需要从innerText
获取。如果是这种情况(并且我们继续使用内联脚本),则将this
(指的是单击的按钮)传递给函数。在函数中,您只需获取按钮innerText
的{{1}}:
使用Javascript:
parentNode
HTML Body(注意我添加了另一个标识为function copyText(t) {
var copyDivText = t.parentNode.innerText;
var returnVal = window.clipboardData.setData('Text', copyDivText);
alert(returnVal);
document.getElementById('clipboardText').value = window.clipboardData.getData('Text');
}
的'模式',因为这似乎与我猜你正在做的内容一致):
div2
希望这是你的意图。
PS:如果 是你想要的,请注意很多人认为内联脚本不好,当你动态附加你的功能时,你不必再传递<textarea id="clipboardText"></textarea>
<hr>
<div id="div1">
<div>
Positive Comments:
<br/>
<textarea id="txtArea" rows="3" name="txtCommentPositive#CurrentRow#">
#reReplaceCommentpositive
</textarea>
</div>
<div>
Negative Comments:
<br/>
<textarea rows="3" name="txtCommentNegative#CurrentRow#">
#reReplaceCommentnegative#
</textarea>
</div>
<input type="button" id="btn" value="copy" onclick="copyText(this);" />
</div>
<div id="div2">
<div>
Positive Comments:
<br/>
<textarea id="txtArea" rows="3" name="txtCommentPositive#CurrentRow#">
#reReplaceCommentpositive
</textarea>
</div>
<div>
Negative Comments:
<br/>
<textarea rows="3" name="txtCommentNegative#CurrentRow#">
#reReplaceCommentnegative#
</textarea>
</div>
<input type="button" id="btn" value="copy" onclick="copyText(this);" />
</div>
(从那以后this
可以在你的函数中直接调用。)