JavaScript没有';如果已输入文本,则不能复制innerHTML
当用户单击按钮将div中一系列段落中的文本复制到文本区域输入字段时,我正在运行以下代码。当文本区域为空时,代码将正常工作并将段落文本粘贴到字段中。如果我再次按下按钮,它也将重复该功能,将段落文本附加到先前粘贴的文本中 但是,如果我在文本字段中手动键入任何内容,然后单击该按钮,它就不起作用了JavaScript没有';如果已输入文本,则不能复制innerHTML,javascript,html,innerhtml,Javascript,Html,Innerhtml,当用户单击按钮将div中一系列段落中的文本复制到文本区域输入字段时,我正在运行以下代码。当文本区域为空时,代码将正常工作并将段落文本粘贴到字段中。如果我再次按下按钮,它也将重复该功能,将段落文本附加到先前粘贴的文本中 但是,如果我在文本字段中手动键入任何内容,然后单击该按钮,它就不起作用了 function copyDiv() { var x = document.getElementById('post-caption').getElementsByTagName('p'); var
function copyDiv() {
var x = document.getElementById('post-caption').getElementsByTagName('p');
var i;
var firstDivContent = x[0].innerHTML;
for (i = 1; i < x.length; i++) {
firstDivContent = firstDivContent + x[i].innerHTML;
}
var secondDivContent = document.getElementById('comment');
firstDivContent = firstDivContent + " " + secondDivContent.innerHTML;
secondDivContent.innerHTML = firstDivContent;
}
函数copyDiv(){
var x=document.getElementById('post-caption').getElementsByTagName('p');
var i;
var firstDivContent=x[0].innerHTML;
对于(i=1;i
相应的HTML如下所示:
<div class="entry themeform" id="post-caption">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
<input name="submit" type="submit" id="submit" class="submit" value="Send Feedback">
<textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"> </textarea></p>
<input name="copy-text" id="copy-text" class="submit copy-text" value="Copy caption text" onClick="copyDiv();">
第1款
第2款
非常感谢您的帮助。使用
value
而不是innerHTML
访问textarea
(您也可以使用document.queryselectoral(“#post caption p”);
)
const-button=document.querySelector('button');
按钮。addEventListener('click',copyDiv,false);
函数copyDiv(){
var x=document.getElementById('post-caption').getElementsByTagName('p');
var i;
var firstDivContent=x[0].innerHTML;
对于(i=1;i
哈罗
试验
这个
单击
文本在获取/设置内容时,区域的行为与div不同。您需要的不是$textarea.innerHTML
,而是$textarea.value
。看看这篇文章
函数copyDiv(){
var x=document.getElementById('post-caption').getElementsByTagName('p');
var i;
var firstDivContent=x[0].innerHTML;
对于(i=1;i
复制
这是第一次
这是第二次
这是第三次
这是一条评论
你能分享你的html吗请。你能提供相应的html以便我们实际运行测试吗?它不需要是完整的HTML,只需一个字符,并将其放在一个提琴中:@mats我很欣赏这个想法,但将其放在一个片段中会更合适,因此我们不需要依赖第三方网站。此代码似乎不从任何文本区域读取或写入。如果是
,请使用.value
,而不是.innerHTML
。如果是contenteditable
元素,请发布并澄清。请参阅及其链接问题。为了澄清,您可以设置以下三种重要元素的内容:
s(以及其他“常规”元素)具有。innerHTML
以反映其当前内容
为其当前内容提供.value
,但也提供.innerHTML
以获取/设置其初始内容。还有一个
(任何类似文本的类型),其当前内容具有.value
属性和value
属性以获取/设置其默认内容(使用setAttribute
或getAttribute
)。