我正在研究jquery来发布输入表。所有输入都需要与其索引一起发布。我猜我不能使用id或输入元素类来发布带有单元格位置信息的值。 。因为输入表是根据用户答案动态生成的。
例如;
用户为问题输入'4'值,并生成3col 4row输入表。
<table>
<tr><td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td>
</tr>
<tr><td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td>
</tr>
<tr><td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td>
</tr>
<tr><td><input type="text"></td> <td><input type="text"></td> <td><input type="text"></td>
</tr>
</table>
通过使用jquery处理程序,我可以存储值...
$(function () {
$("input").change(function() {
// save this.value() in an array.
array.push(this.value());
});
});
此刻我陷入困境,因为我必须在表中存储带有(x,y)索引的值。不久;必须将此2维表的值转换为2dim。服务器端的数据数组。
像...一样的东西。
$(function () {
$("input").change(function() {
array[this.col][this.row] = this.value();
});
});
总结一下;
是否可以获取元素的位置(col,row),该元素位于表格内?
答案 0 :(得分:1)
您可以使用index()方法,如下所示
$(function () {
$("input").change(function () {
var row = $(this).closest('tr').index(); //index of row
var col= $(this).closest('td').index(); //index of column
// your code
});
});
答案 1 :(得分:0)
尝试这样的事情:
$(function () {
var $rows=$('tr');/* refine if using column heading row to something like $('tr:gt(0)')*/
$("input").change(function() {
var $row=$(this).closest('tr');
var rowIndex=$rows.index($row);
var colIndex=$(this).parent().index();
/* do something with indexes*/
});
});
答案 2 :(得分:0)
如果你想要数组中列和行的存储值,你可以使用多维数组(数组数组)。
首先,您在默认数组中插入其他数组,这些数组会显示yuour行,然后当字段更改时,您将数据存储在数组的第一个数据中:行第二个数据列。
<script type="text/javascript">
$(document).ready(function(){
var array=[]
for(a=0;a<$('table tr').length;a++){
array[a]=[]
}
$("input").change(function() {
var val=$(this).val()
var row=$(this).parents('tr').index()
var column =$(this).parent('td').index()
array[row][column] = val
console.log(array)
});
})
</script>