我有一个由包含字符串的几个对象组成的数组。我成功地使用:
显示数组<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来调用我的函数,该函数由一个数组组成。我搜索了各种各样的东西,但坦率地说,我迷路了。在这一点上,我甚至不确定我的方法是否正确。我敢肯定,这是我头脑中那些简单的事情之一!
答案 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);
}
}