2013-03-13 67 views
0

我希望有机会用JavaScript我用下面的代码的文本:改变文本的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

学习使用英文编码。只是来自同一位家伙的提示,与你说同一种语言。 – pduersteler 2013-03-13 08:12:36

+0

[javascript的一个函数来替换我的网页上的一些单词]的可能的重复(http://stackoverflow.com/questions/5043471/javascript-a-function-to-replace-some-words-on-my-webpage) – CloudyMarble 2013-03-13 12:30:01

回答

4

方法getElementById()返回一个元素,而不是一组元素。所以没有必要将[0]应用于它。你也应该把Neu初始化内部Aendern()功能:

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

DEMO:http://jsfiddle.net/RqgMb/

0

http://jsfiddle.net/FJr2t/

在上面的链接我做你的代码工作。 您的两个主要问题是:

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

首先,getElementById('thema')只返回一个项目,所以你应该放下[0]。 其次在加载时,头部的JavaScript代码会被执行一次。所以这行一开始就被执行,然后读取输入元素的值。 所以你应该把它移入你的Aendern方法。

P.S .:把你的代码放在window.onload等不是必需的,但你应该definilty看看它并做到这一点。