如何使用JavaScript从表中获取单元格值?

时间:2010-02-06 14:27:44

标签: javascript html

<td> <input type="button" name="buton" id="x2" value="2" onclick="swap(id)";/> </td>

这是单击表格中的按钮时,它的id作为参数传递给函数“swap”,如下所示:

  function swap(x)
  { 
   document.write(x);
  }

成功获取id但不是值;当我尝试这样时:

  function swap(x)
  { 
   document.write(x.value);
  }

输出显示为undefined。你能告诉我如何使用单元格id获取单元格值吗?

5 个答案:

答案 0 :(得分:3)

我相信你要找的是document.getElementById(x).value; 此外,如果你想按钮只是将它传递给这样的函数:

<button onclick="foo(this)"/>

答案 1 :(得分:1)

我想使用jQuery是为了这个目的,它允许非常容易地遍历DOM。

<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>

如果可以,可能值得在包含客户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());
});

如果这让事情变得更容易

代码在交叉问题上或多或少更可靠

答案 2 :(得分:0)

如果您要传递元素的ID,可能需要使用document.getElementById(x)来访问它。

答案 3 :(得分:0)

首先

z = document.getElementById(id);,然后您应该可以使用z.firstChild.textContent

答案 4 :(得分:0)

您需要使用var cell = document.getElementById(x)获取单元格。然后使用cell.firstChild.nodeValue

function swap(x)
{ 
    var cell = document.getElementById(x);
    document.write(cell.firstChild.nodeValue);
}

编辑:在FF3.5和IE8上对此进行了测试,它确实有效。