0

我有一个由几个包含字符串的对象组成的数组。我可以使用以下方法成功显示数组:

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

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

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

4

1 回答 1

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);
   }
}
于 2012-11-23T23:02:40.250 回答