0

我想要一个带有 javascript 的文本,我使用以下代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Test</title>
<script type="text/javascript">
var Neu = document.getElementById("thema")[0].value;
function Aendern () {
  document.all.meinAbsatz.innerHTML = Neu;
}
</script>
</head><body>
<p id="meinAbsatz">Text</p>
<input id="thema" type="text" value="Test Theme" />
<a href="javascript:Aendern()">chance theme</a>
</body>
</html>

如果我点击“机会主题”,“文本”机会“未定义”

4

2 回答 2

4

方法getElementById()返回单个元素,而不是一组元素。所以没有必要申请[0]它。你也应该把Neu初始化放在Aendern()函数里面:

function Aendern() {
    var Neu = document.getElementById("thema").value;
    document.all.meinAbsatz.innerHTML = Neu;
}

演示:http: //jsfiddle.net/RqgMb/

于 2013-03-13T08:10:45.850 回答
0

http://jsfiddle.net/FJr2t/

在上面的链接中,我使您的代码正常工作。你的两个主要问题是:

var Neu = document.getElementById("thema")[0].value;

首先,getElementById('thema')只返回一个项目,所以你应该删除[0]. 其次,加载时,您脑海中的javascript代码会执行一次。所以这一行一旦开始就被执行,然后读取输入元素的值。所以你也应该把它移到你的 Aendern 方法中。

PS:在这种情况下,不需要将您的代码放入 window.onload 等,但您应该明确地查看并执行此操作。

于 2013-03-13T08:16:41.027 回答