所以基本上我面临的问题是一些奇怪的无法解释的jquery行为。所以,让我们说我有以下html:
<tr onclick='Clicked(this)'></tr>
当我使用这样的函数时,一切都是,正在显示索引:
function Clicked(x) {
console.log(x);
console.log("Row index is: " + x.rowIndex);
}
输出:
><tr onclick="Clicked(this)">...</tr>
>Row index is: 1
现在让我们说我不想直接为该行注册该函数,但是对于它的单元格中的输入,但是我想要访问相同的属性排。 我桌子上一排的样本:
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
现在我试图从为输入类分配的函数内部访问行和单元属性......就像那样:
$('.immediate_update').change(function(e)
{
var cell = $(this).closest('td');
//I've also tried following, but it's returning the same:
//$(this).parent();
var row = $(this).closest('tr');
console.log(row);
console.log(row.rowIndex);
});
输出:
[tr, prevObject: yt.fn.init(1)]
undefined
这一行的所有属性都没有工作......基本上就是这样 我想问你返回对象之间差异的原因是什么,以及访问输入所在单元格的行和列索引的方法 - 这是什么我需要接受......而且一般来说一些信息也很有用,因为我不知道这是什么问题。提前谢谢!
答案 0 :(得分:1)
rowIndex
是一个纯javascript,如果你需要使用它,你应该使用var row = $(this).closest('tr')[0];
但是在jquery中你可以使用.index()
使用rowIndex
$('.immediate_update').change(function(e)
{
var cell = $(this).closest('td');
//I've also tried following, but it's returning the same:
//$(this).parent();
var row = $(this).closest('tr')[0];
//console.log(row);
console.log(row.rowIndex);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
</table>
使用index()
$('.immediate_update').change(function(e)
{
var cell = $(this).closest('td');
//I've also tried following, but it's returning the same:
//$(this).parent();
var row = $(this).closest('tr');
//console.log(row);
console.log(row.index());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
<tr>
<td>
<input type='text' class='immediate_update' value='myRandomVal'>
</td>
</tr>
</table>
就个人而言,我不喜欢混合纯粹的javascript和jquery ..而且 虽然你已经包含了jquery,你可以使用它,它更容易