使用JavaScript显示SPAN的内容

3

我有这段代码。这是我多年来做的事情,但我对这个例子的结果感到困惑。目的是使文本框可见,并将所点击的SPAN标签的内容放入其中。

document.onclick = CaptureClickedElement;

function CaptureClickedElement(e)
{
var EventElement;
if(e==null)
    EventElement = event.srcElement;// IE
else
    EventElement = e.target;// Firefox

if( EventElement.tagName == "SPAN")
    {
    document.getElementById("divTXT").style.display="";
    document.getElementById("txt").value = document.getElementById("Span1").innerHTML;
    alert(document.getElementById("Span1").innerHTML)
    }
}

奇怪的是,它确实显示了内容,但也在其末尾显示了打开/关闭SPAN标记。如果我警报结果,将显示相同的内容。

请在此处查找附加的屏幕截图。

enter image description here

有人知道为什么会发生这种情况吗?

谢谢!

以下是HTML(从mplungjan的评论中复制)

<style type="text/css"> 
 #divOuter { 
   width: 100px; 
   height: 70px; 
   border: 1px solid blue; 
   float: left; 
 } 
 </style>

<body> 
  <div> 
    <form name="frm" method="post" action=""> 
      <div id="divTXT" style="display:none"> 
        <input type="text" id="txt" name="txt" value="" size="30" /> 
      </div> 
    </form> 
  </div> 
  <div id="divOuter"> 
    <span id="Span1">hi, this is a test.<span> 
  </div> 
</body>

<style type="text/css"> #divOuter { width: 100px; height: 70px; border: 1px solid blue; float: left; } </style> - itsols
<body> <div> <form name="frm" method="post" action=""> <div id="divTXT" style="display:none"> <input type="text" id="txt" name="txt" value="" size="30" /> </div> </form> </div> <div id="divOuter"> <span id="Span1">嗨,这是一个测试。<span> </div> </body> - itsols
2个回答

3

结构问题:

<span id="Span1">hi, this is a test.<span>

请注意这个span标签没有被正确地关闭。

很好的发现。我甚至在粘贴HTML时都没有注意到那个问题 :O - mplungjan
@itsols 不是傻瓜 - 我已经看到过这样的怪异情况很多次了。当你获取一个元素的innerHTML并返回给你一个标签片段时,你应该自动怀疑存在结构问题。 - Thomas W Tupper

0
需要使用的是.innerText(对于IE浏览器)和.text(对于其他浏览器)。

谢谢您的快速回答,但innerText和text都不起作用。它们会弹出“未定义”的警告。 - itsols
无需innerText / textContent - mplungjan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接