JavaScript onClick()显示

时间:2012-11-23 22:42:03

标签: javascript html html5 onclick getelementbyid

我有一个由包含字符串的几个对象组成的数组。我成功地使用:

显示数组
<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 by id来调用我的函数,该函数由一个数组组成。我搜索了各种各样的东西,但坦率地说,我迷路了。在这一点上,我甚至不确定我的方法是否正确。我敢肯定,这是我头脑中那些简单的事情之一!

1 个答案:

答案 0 :(得分: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);
   }
}