Отображение содержимого SPAN с использованием JavaScript - PullRequest
3 голосов
/ 01 мая 2011

У меня есть этот код. Я делал это в течение многих лет, но я озадачен результатом этого примера. Цель состоит в том, чтобы сделать текстовое поле видимым и поместить в него содержимое нажатого тега 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>

Ответы [ 2 ]

3 голосов
/ 01 мая 2011

Структурная проблема:

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

Обратите внимание на отсутствие подходящего близко к промежутку.

0 голосов
/ 01 мая 2011

Необходимо использовать .innerText (для IE) и .text для других.

...