如何选择< td> < table>用javascript?
我知道这是一个非常简单的问题,但我无法在任何地方找到答案。只有答案是使用jQuery,而不是纯JS。我已经尝试了下面的代码,它不起作用。我不知道为什么。
I know this is very easy question, but I couldn't find the answer anywhere. Only answers are the ones using jQuery, not pure JS. I've tried the code below and it doesn't work. I don't know why.
var t = document.getElementById("table"),
d = t.getElementsByTagName("tr"),
r = d.getElementsByTagName("td");
这也不起作用:
var t = document.getElementById("table"),
d = t.getElementsByTagName("tr"),
r = d.childNodes;
我做错了什么?这样做的最佳方式是什么?
What am I doing wrong? What is the best way to do this?
编辑:
我确实有我的表格的id。我知道,我很傻。这就是我的HTML外观:
I indeed have the id of my table table. Preety silly I know. This is how my HTML looks:
<table id="table">
<tr>
<td id="c1">1</td>
<td id="c2">2</td>
<td id="c3">3</td>
</tr>
<tr>
<td id="b1">4</td>
<td id="b2">5</td>
<td id="b3">6</td>
</tr>
<tr>
<td id="a1">7</td>
<td id="a2">8</td>
<td id="a3">9</td>
</tr>
</table>
更清楚地解释我的意图>我希望制作一个tic tac toe游戏。对于初学者,我希望点击< td>并且能够提取特定的< td>。如何最有效地做到这一点?
To explain my intentions more clearly > I wish to make a tic tac toe game. For starters, I wish to click on the < td > and be able extract the id of that particular < td >. How to do it most efficiently?
这个 d = t.getElementsByTagName(tr)
和此 r = d.getElementsByTagName(td)
都是数组
。 getElementsByTagName
会返回元素集合,即使在您的匹配项中只找到一个元素。
This d = t.getElementsByTagName("tr")
and this r = d.getElementsByTagName("td")
are both arrays
. The getElementsByTagName
returns an collection of elements even if there's just one found on your match.
所以你必须使用像这样:
So you have to use like this:
var t = document.getElementById("table"), // This have to be the ID of your table, not the tag
d = t.getElementsByTagName("tr")[0],
r = d.getElementsByTagName("td")[0];
将数组的索引放在想要访问的对象上。
Place the index of the array as you want to access the objects.
注意 getElementById
,因为名称只是得到匹配id的元素,所以你的表必须像< ; table id ='table'>
和 getElementsByTagName
通过标记获取。
Note that getElementById
as the name says just get the element with matched id, so your table have to be like <table id='table'>
and getElementsByTagName
gets by the tag.
编辑:
好了,继续这篇文章,我想你可以这样做:
Well, continuing this post, I think you can do this:
var t = document.getElementById("table");
var trs = t.getElementsByTagName("tr");
vat tds = null;
for (var i=0; i<trs.length; i++)
{
tds = trs[i].getElementsByTagName("td");
for (var n=0; n<trs.length;n++)
{
tds[n].onclick=function() { alert(this.id); }
}
}
试试吧!