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 に答える