我通过函数发送TD,但我无法与ID进行交互。
HTML:
<tr>
<td id="1" onclick="move(this);"></td>
<td id="2" onclick="move(this);"></td>
<td id="3" onclick="move(this);"></td>
</tr>
JS:
function move(td) {
//I want the ID of this td that I've captured by "this"
var tdId = td.id; //<--- This doesn't works
var tds = document.getElementsByTagName('td');
for (var td in tds) {
if (tds[td].innerHTML == "last") {
tdFinal = tds[td];
}
}
alert(tdFinal.id); //<---- This works fine
}
答案 0 :(得分:1)
强文对我而言,它的工作正常:)
这是一个小提琴:http://jsfiddle.net/4P3jF/
var move = function(td) {
//I want the ID of this td that I've captured by "this"
var tdId = td.id; //<--- This doesn't works
alert(tdId);
}
答案 1 :(得分:0)
Let's start with a jsbin.com demo. People love demos.
应该解决的几件事情:
<强> 1。 HTML ID应以字母
开头这不再是HTML 5中的要求,但您仍然应该这样做。 Read more about the id attribute here
如果要将数据附加到元素,则应使用data-*
属性。 Read more about data-* attributes here
<table id="my-table">
<tr>
<td data-id="1"></td>
<td data-id="2"></td>
<td data-id="3"></td>
</tr>
</table>
<强> 2。不引人注目的JavaScript
我删除了onclick
属性,转而采用更多unobtrusive方法。我将一个简单的id
附加到table
元素,以便轻松定位我们关注的特定td
元素。
// our move function
function move(elem) {
console.log(elem.getAttribute("data-id"));
}
// our click listener
function onClick(event) {
move(this);
event.preventDefault();
}
// get our table's td elements
var table = document.getElementById("my-table");
var tds = table.getElementsByTagName("td");
// loop through each td and add a click listener
for (var i=0, len=tds.length; i<len; i++) {
tds[i].addEventListener("click", onClick);
}
添加一些CSS以使td
元素显示为可点击
#my-table td {
cursor: pointer;
}
答案 2 :(得分:-1)
你的第一句话工作正常!
我做了一个小例子: http://jsfiddle.net/8tgVq/2/
(检查控制台输出结果!)
HTML:
<table>
<tr>
<td id="1" onclick="move(this);">a</td>
<td id="2" onclick="move(this);">b</td>
<td id="3" onclick="move(this);">c</td>
</tr>
</table>
JS:
function move(td) {
console.log(td.id);
}
输出:
1
2
3