我正在尝试使用jQuery来计算如何为每一行获取表格单元格的值。
我的表格如下:
<table id="mytable">
<tr>
<th>Customer Id</th>
<th>Result</th>
</tr>
<tr>
<td>123</td>
<td></td>
</tr>
<tr>
<td>456</td>
<td></td>
</tr>
<tr>
<td>789</td>
<td></td>
</tr>
</table>
我基本上想循环遍历表格,并为每一行获取Customer Id
列的值。
在下面的代码中,我已经知道我需要这样做才能让它循环遍历每一行,但我不知道如何获取行中第一个单元格的值。
$('#mytable tr').each(function() {
var cutomerId =
}
答案 0 :(得分:285)
如果可以,可能值得在包含客户ID的TD上使用class属性,以便您可以写:
$('#mytable tr').each(function() {
var customerId = $(this).find(".customerIDCell").html();
});
基本上这与其他解决方案相同(可能是因为我进行了复制),但其优点是,如果您移动列,甚至将客户ID放入列中,则无需更改代码结构a&lt; span&gt;,只要你保留class属性。
顺便说一句,我认为你可以在一个选择器中做到这一点:
$('#mytable .customerIDCell').each(function()
{
alert($(this).html());
});
如果这让事情变得更容易
答案 1 :(得分:121)
$('#mytable tr').each(function() {
var customerId = $(this).find("td:first").html();
});
你正在做的是遍历表中的所有trs,在循环中找到当前tr中的第一个td,并提取其内部html。
要选择特定单元格,可以使用索引引用它们:
$('#mytable tr').each(function() {
var customerId = $(this).find("td").eq(2).html();
});
在上面的代码中,我将检索第三行的值(索引从零开始,因此第一个单元格索引将为0)
如果没有jQuery,你可以这样做:
var table = document.getElementById('mytable'),
rows = table.getElementsByTagName('tr'),
i, j, cells, customerId;
for (i = 0, j = rows.length; i < j; ++i) {
cells = rows[i].getElementsByTagName('td');
if (!cells.length) {
continue;
}
customerId = cells[0].innerHTML;
}
答案 2 :(得分:16)
一种不那么冒犯的方法:
$('#mytable tr').each(function() {
if (!this.rowIndex) return; // skip first row
var customerId = this.cells[0].innerHTML;
});
这显然可以改为与非第一个细胞一起使用。
答案 3 :(得分:7)
试试这个,
$(document).ready(function(){
$(".items").delegate("tr.classname", "click", function(data){
alert(data.target.innerHTML);//this will show the inner html
alert($(this).find('td:eq(0)').html());//this will alert the value in the 1st column.
});
});
答案 4 :(得分:6)
$('#mytable tr').each(function() {
// need this to skip the first row
if ($(this).find("td:first").length > 0) {
var cutomerId = $(this).find("td:first").html();
}
});
答案 5 :(得分:4)
你不是用那个列的id吗? 说:
<table width="300" border="1">
<tr>
<td>first</td>
</tr>
<tr>
<td>second</td>
</tr>
<tr>
<td>blah blah</td>
<td>blah blah</td>
<td id="result">Where the result should occur</td>
</tr>
</table>
<script type="text/javascript">
$('#result').html("The result is....");
</script>
答案 6 :(得分:4)
这有效
$(document).ready(function() {
for (var row = 0; row < 3; row++) {
for (var col = 0; col < 3; col++) {
$("#tbl").children().children()[row].children[col].innerHTML = "H!";
}
}
});
答案 7 :(得分:2)
试试这个:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script type="text/javascript"><!--
function getVal(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
alert(targ.innerHTML);
}
onload = function() {
var t = document.getElementById("main").getElementsByTagName("td");
for ( var i = 0; i < t.length; i++ )
t[i].onclick = getVal;
}
</script>
<body>
<table id="main"><tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr><tr>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr><tr>
<td>9</td>
<td>10</td>
<td>11</td>
<td>12</td>
</tr></table>
</body>
</html>
答案 8 :(得分:2)
$(document).ready(function() {
var customerId
$("#mytable td").click(function() {
alert($(this).html());
});
});
答案 9 :(得分:2)
一个工作示例: http://jsfiddle.net/0sgLbynd/
<table>
<tr>
<td>0</td>
<td class="ms-vb2">1</td>
<td class="ms-vb2">2</td>
<td class="ms-vb2">3</td>
<td class="ms-vb2">4</td>
<td class="ms-vb2">5</td>
<td class="ms-vb2">6</td>
</tr>
</table>
$(document).ready(function () {
//alert("sss");
$("td").each(function () {
//alert($(this).html());
$(this).html("aaaaaaa");
});
});