0

我有一个奇怪的情况。我需要在 s 之间有一个表格td。对于一些 ajax 的 inrow 更新,我需要这个,并且只希望在部分中提交一行。所以每一行可能有 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; 
});

http://jsfiddle.net/tbc4G/3/

4

2 回答 2

3

jsFiddle Demo

上到最近的td,然后找到前一个表格

var val = $(this).parents('td:first').prev("form:first").attr('myid');   
alert(val);  
于 2013-05-23T23:04:32.460 回答
1

我不会通过以下方式使我的 html 无效:-

  1. 将表单作为子级tr
  2. 自定义属性没有前缀data-

不确定您的确切 HTML 布局,但您可以尝试这种方式。

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;
});

小提琴

于 2013-05-23T23:11:04.577 回答