2013-04-28 81 views
0

所有,我想在jsp 页面中使用javascript创建html obejct,但'alert(GameObject1.loginurl);'将提醒'未定义'。如何在jsp页面中使用javascript创建html obejct

我在下面的代码中发现了一些错误吗? 看来'obj.appendChild'失败了。但是为什么?

var obj; 
try { 
obj = document.createElement("object"); 
obj.id = "GameObject1"; 
obj.name = "JavaGameObject1"; 
obj.setAttribute("classid", "clsid:72E6F181-D1B0-4C22-B0D7-4A0740EEAEF5"); 
obj.width = 640; 
obj.height = 526; 

var loginurl = document.createElement("param"); 
loginurl.setAttribute("name", "loginurl"); 
loginurl.setAttribute("value", "xx.xx.xx.xx:8080"); 
obj.appendChild(loginurl); 

document.body.appendChild(obj); 

alert(GameObject1.loginurl); 
} catch (e) { 
alert("Exception:" + e.message); 
} 
+2

你期待从'GameObject1.loginurl'得到什么? – Musa 2013-04-28 06:47:12

回答

0

根据您的代码,GameObject1从未定义过。我想你想使用obj,因为这是ID GameObject1的HTML对象。

但我会注意,即使obj.loginurl为您创建一个名为loginurl孩子HTML对象param,而不是一个属性的HTML对象obj仍然是不确定的。 (即会需要你做obj.loginurl = "xx.xx.xx.xx:8080"来访问它,你似乎想的方式)

为了让子元素param的价值,你会希望像obj.children[0].value将返回您loginurl您设置的值目的。或者,在您当前的范围内,您可以拨打loginurl.value

当通过obj.children[#]访问子元素时,最好检查该位置的元素是否存在,以避免在任何地方抛出异常。

+0

谢谢,我可以通过GameObject1.children [#]获得价值。 – samir 2013-04-28 07:05:15

0

要访问loginurl,你可以使用

alert(obj.getElementsByTagName("param")[0]); 
alert(obj.getElementsByTagName("param")[0].name); 
alert(obj.getElementsByTagName("param")[0].value); 

访问像你提到的方式是获得的属性,而不是子元素的正确方法。

GameObject1 // Will look for Object variable not the object with id "GameObject1" - You should use document.getElementById("GameObject1") 
GameObject1.loginurl // will look for attribute and not the child element 
+0

感谢您的帮助 – samir 2013-04-28 07:29:12