下午,
说我有一张像这样的桌子
<table id="foo">
<tr><td><!-- label --><!-- textbox --></td><tr>
<tr><td><!-- label --><!-- textbox --></td><tr>
<tr><td><!-- label is bar --><!-- textbox --></td><tr>
<tr><td><!-- label --><!-- textbox --></td><tr>
<tr><td><!-- label --><!-- textbox --></td><tr>
</table>
我怎样才能在JQuery中确定修改了文本框的行的索引(模糊)?因此,如果用户将值添加到第三行的文本框中(“label is bar”),我可以提醒行索引(在这种情况下为2)?
我假设我得到了表格id,在tr上执行了每个,然后使用子节点找到文本框,当该子节点激活onblur事件时,我们然后使用parent输出索引?
有什么想法吗?
由于
答案 0 :(得分:3)
误读了这个问题,编辑它!
$('#foo tr td').click(function() {
alert($(this).index());
});
答案 1 :(得分:3)
$("input[type=text]").blur(function() {
alert($(this).closest("tr").index());
});
这会将blur
事件附加到input
的所有type="text"
元素。您可能希望缩小该选择器以仅选择表中的输入。
在事件处理函数中,它获取最接近的tr
(即this
的第一个祖先元素,即tr
,并获取其索引。 / p>
这是example fiddle显示它的实际效果。
如另一个答案中所述,您实际上可能正在寻找change
事件,而不是您在问题中所说的blur
事件。当输入的值实际发生变化时,change
事件将触发,而不是每当它失去焦点时。如果是这种情况,只需将blur
更改为change
。
答案 2 :(得分:1)
$('#foo tr').click(function(){
console.log($(this).index());
})
答案 3 :(得分:0)
您应该为正确的事件添加处理程序,例如模糊或任何你想要的,输入字段和处理程序内部使用父级(如你所说)找到行(tr)。 e.g。
$('.testFieldsClass').blur(function() {
//first parent is td, second is tr take it and do whatever!
var currentTR = $(this).parent().parent();
//... do something in curretnTR
});
注意:在我的示例中,我假设所有文本字段都有一个名为testFieldsClass的类,对于选择器更容易。 另外,在我的例子中,我只捕捉文本字段的模糊事件。
答案 4 :(得分:0)
修改后你的意思是改变?
如果是,你可以这样做:
$("#foo input").change(function(){
alert($('#foo td').index($(this).parent()));
});