我有一个奇怪的情况。我需要在td
之间有一个表格。我需要这个用于ajax的一些内容更新,并且只希望在部分中提交一行。所以每行可能有2或3种形式。
但是,$(this).closest
找不到此form
- > undefined
。
我如何才能最好地选择此form
?
我的 html
<table>
<tr>
<form myid='hi'>
<td> <a href="#">Delete</a> </td>
</form>
</tr>
<tr>
<form myid='hi2'>
<td> <a href="#">Delete</a> </td>
</form>
</tr>
</table>
我的 jQuery
$('a').click(function() {
var val = $(this).closest('form').attr('myid');
alert(val); // undefined!
return false;
});
答案 0 :(得分:3)
的 jsFiddle Demo
强> 的
向上移动到最近的td
,然后找到第一个上一个表单
var val = $(this).parents('td:first').prev("form:first").attr('myid');
alert(val);
答案 1 :(得分:1)
我不会通过以下方式使我的HTML无效: -
tr
data-
不确定您的确切HTML布局,但您可以尝试这种方式。
<table>
<tr>
<td>
<form data-myid='hi'>
<table>
<tr>
<td><input type="text" value="1" /></td>
<td>Label</td>
<td> <a href="#">Delete</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td>
<form data-myid='hi1'>
<table>
<tr>
<td><input type="text" value="1" /></td>
<td>Label</td>
<td> <a href="#">Delete</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td>
<form data-myid='hi2'>
<table>
<tr>
<td><input type="text" value="1" /></td>
<td>Label</td>
<td> <a href="#">Delete</a>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
$('a').click(function () {
var val = $(this).closest('form').data('myid');
alert(val);
return false;
});