2014-03-25 19 views
0

我使用MVC,我想每一个td的价值在我table如何获得HTML使用JavaScript网格表

<table> 
    <tr> 
     <td id="val"></td> 
    </tr> 
</table> 
<input type="button" value="" class="edit"/> 

而且在JavaScript编辑​​值现在用

var td = $(document).getElementById("val").innetHTML; 

$(document).on('click', '.edit', function (e) { 
    if(td == null) 
    { 

    } 
    else 
     code...... 
}) 

但是,无论何时单击行编辑按钮,它只返回第一行值,而不会获得第二个和更远的值。

任何建议将不胜感激。

+0

你在'innetHTML一个错字',你应该写'document.getElementById()' – fcalderan

回答

0

如果您试图逐个获取表格的值,我认为jquery each是您的功能。

SO中还有另外一个question,就是一个很好的例子。

2
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
$(document).ready(function() 
{ 
    $('.edit').click(function() 
    { 
      $('table td').each(function() { 
      var val = $(this).html(); 
      alert(val); 
     });    
    });     
}); 

</script> 
+0

感谢您的回复。即使使用您的代码,也是同样的输出。 – shan

+0

此代码将获得所有td的数据 –

+0

我有多个页面,每个页面有10行。无论何时点击编辑按钮,它都会返回该页面的第一行值,其余页面也会发生同样的情况。我为我的网格使用数据表 – shan

1

你必须使用class属性,而不是 '身份证':

<table> 
<tr><td class="editVal"></td></tr> 
<tr><td class="editVal"></td></tr> 
<tr><td class="editVal"></td></tr> 
</table> 

你必须使用jQuery的迭代每一个元素:

$('.editVal').each(function(i) { 
    // get value 
    var $td = $(this).html; 
    // set value 
    $(this).html = 'Nuovo valore'; 
} 
相关问题