0

我正在编写一个简单的 javascript 代码,但我不知道它不起作用。请告诉我你是否知道这一点。

<!DOCTYPE html>
<html>
<head>
<script>
function displayText(){
var xa = document.getElementById('abcd').innerHTML;
xa+= 'asdf';
}

displayText();  
</script>
</head>
<body>
<div id="abcd"></div>
</body>
</html>
4

2 回答 2

6

innerHTML返回元素当前内容的字符串,而不是指向它的指针。所以改用这个:

function displayText(){
  document.getElementById('abcd').innerHTML += 'asdf';
}

或者

function displayText(){
  var el = document.getElementById('abcd'); 

  var xa = el.innerHTML;
  xa += 'asdf';

  el.innerHTML = xa;
}

Furthermore you can not call the function, before the element you are referring to is actually created. So move the call at the bottom of the body tag.

<!-- .... -->
<script>
  display();
</script>
</body>
于 2013-02-23T11:20:02.587 回答
0

在代码运行时,主体(包括您的 div)尚未被解析。getElementById('abcd')那个时候什么都找不到。

将您的脚本元素移动到正文的末尾,以便它在正文被解析后运行,或者从处理程序调用您displayText()函数onload

(如果您打算将新值xa显示在同一字段中,则需要使用 将其写回元素document.getElementById('abcd').innerHTML = xa。)

于 2013-02-23T11:19:26.297 回答