我有一些像这样的td
<td id="first">first</td>
<td id="second">second</td>
<td id="third">third</td>
<td id="fourth">fourth</td>
通过点击一个td,我想找出其下两个tds的id。 当我点击“第一个”时,我需要获得“第二个”和“第三个”值。
如何使用JQuery或Javascript实现此目的?
答案 0 :(得分:1)
如果您点击最后一个单元格,这将提醒'undefined'。
$('td').click(function () {
alert($(this).next().attr('id'));
});
这个方法有点hacky,因为.nextSibling返回一个不包含id
属性的文本节点对象(不是节点)。它从parentNode
获取兄弟姐妹列表,然后我们迭代它们直到我们得到一个匹配,下一个索引是下一个兄弟。
var tds = document.getElementsByTagName('td');
for (var i = 0; i < tds.length; i++) {
tds[i].onclick = function () {
var siblings = this.parentNode.children;
var i = 0;
while (siblings[i] != this) { i++; }
if (i < siblings.length)
alert(siblings[i + 1].id);
};
}
答案 1 :(得分:0)
您可以使用next(
)两次。你将不得不检查下一个是否带来了一个元素,然后你不会得到第二个,最后你不会得到第一个和第二个下一个元素。
<强> Live Demo 强>
$('td').click(function () {
first = $(this).next('td');
second = first.next('td');
if (first.length) alert(first.text() );
else alert("No next");
if (second.length) alert(second.text());
else alert("No next");
});
答案 2 :(得分:0)
JQuery具有可用于此的兄弟选择器和函数:
答案 3 :(得分:0)
$('td').click(function(e) {
e.preventDefault();
var id = $(this).next().attr('id');
if (id) alert(id);
});