如何让复制文本在不同的div上工作?

时间:2014-06-04 17:24:45

标签: javascript

我有一个复制文本的'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');
}

1 个答案:

答案 0 :(得分:0)

在无数次重新阅读您的问题后,突然点击了它:似乎就像您想要使用div1中的代码作为您可以重复使用的“模式”。
但是,您的javascript目前只有一个div- id 硬编码。

我不知道该怎么做div2(来自你的函数)所以我把它(作为示例)更改为textareaid } 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可以在你的函数中直接调用。)