Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript没有';如果已输入文本,则不能复制innerHTML_Javascript_Html_Innerhtml - Fatal编程技术网

JavaScript没有';如果已输入文本,则不能复制innerHTML

JavaScript没有';如果已输入文本,则不能复制innerHTML,javascript,html,innerhtml,Javascript,Html,Innerhtml,当用户单击按钮将div中一系列段落中的文本复制到文本区域输入字段时,我正在运行以下代码。当文本区域为空时,代码将正常工作并将段落文本粘贴到字段中。如果我再次按下按钮,它也将重复该功能,将段落文本附加到先前粘贴的文本中 但是,如果我在文本字段中手动键入任何内容,然后单击该按钮,它就不起作用了 function copyDiv() { var x = document.getElementById('post-caption').getElementsByTagName('p'); var

当用户单击按钮将div中一系列段落中的文本复制到文本区域输入字段时,我正在运行以下代码。当文本区域为空时,代码将正常工作并将段落文本粘贴到字段中。如果我再次按下按钮,它也将重复该功能,将段落文本附加到先前粘贴的文本中

但是,如果我在文本字段中手动键入任何内容,然后单击该按钮,它就不起作用了

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">&nbsp;</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
)。