2012-11-23 47 views
0

我有一个包含几个包含字符串的对象组成的数组。我能够成功利用来显示阵列:JavaScript onClick()显示

<td><p onclick="theMiddle(this)">The Middle</td> 

正如你从TD标签看到,这是一个表的一部分。问题在于浏览器打开了一个新页面来显示我的文本。我一直试图在p标签中显示我的表格上方的数组。

//JavaScript 
var arrayTheMiddle = new Array (showName.theMiddle, beginingTime.theMiddle, 
network.abc, duration.thirty, rating.general, description.theMiddle, showImage.theMiddle); 

function theMiddle(obj){ 
    for(i=0; i < arrayTheMiddle.length; i++) 
    { 
     document.write(arrayTheMiddle[i] + "<br>"); 
    } 
} 

//HTML File 

<p>Would like the array/function displayed here while the user clicks within the table below (entire table has not been listed)</p> 

<td><p onclick="theMiddle(this)">The Middle</td> 

不幸的是,我不断地利用get元素的id来调用我的函数,它由一个数组组成。我寻找各种各样的东西,但坦率地说我迷路了。甚至不知道我的方法在这一点上是否正确。我敢肯定,这是那些简单的事情,正在我的头上!

+0

document.appendChild? –

+0

是否在您的html中描述了“<!DOCTYPE .......”? –

+0

谢谢Eicto我会试试! – junaidkaps

回答

1

强烈建议使用几种优秀的JavaScript框架之一来完成这类工作。我更喜欢Dojo,很多人都喜欢jQuery。

这里没有足够的上下文来看看什么是不工作,但你几乎总是避免document.write,它只是将文本附加到文档的HTML - 我不认为这是什么你想在这种情况下。

您想要创建某个容器节点的子节点。通常情况下,你会在你的标记中放置一个容器节点,但没有内容用于此目的,我们称之为<div id='container'>

,那么你会做这样的事情(我实在懒得去测试手工编码的DOM操作,但是这是想法):

var container = document.getElementById('container'); 
for (var m : theMiddle) { 
    if (theMiddle.hasOwnProperty(m)) { 
     var txt = document.createTextNode(m); 
     container.appendChild(txt); 
     var br = document.createNode('br'); // I don't approve of br, but that is not relevant here 
     container.appendChild(br); 
    } 
} 
+0

这是很棒的东西,但不幸的是我需要用最简单的JavaScript来完成这部分。因此我尝试类似getElementbyID的理由。 – junaidkaps

+0

祝你好运...... :-)相信我,根据我的经验,使用框架是最简单的。但是如果你有技术或其他方面的限制,这种方法就行得通了。 – SAJ14SAJ

+0

谢谢!是的,我肯定同意。我简单地使用过Jquery,它非常棒。这是一个学校项目,JavaScript基础是必需的。 :(朋友建议使用innerHTML ...你对此有何看法? – junaidkaps