使用jquery最接近选择第一个值

时间:2011-03-04 23:56:29

标签: jquery css-selectors

我正在使用jquery数据表来生成html表。我设置了一个回调来为链接创建一个额外的列(编辑,删除等等)。

我设置了一个绑定功能来检测点击,这是有效的。

我遇到的问题是在点击最近一行时选择第一列的文本/值。

这是绑定到类并检测到点击的片段。


$(".drop").bind('click', function(e)  
{  
   var val = $(e.target).closest('td:first').text();  
   alert(val);                             
});

生成后的HTML表格主体


<tbody>
            <tr class="odd">
                <td>doug@thisisatest.org</td>

                <td>doug@email.com</td>

                <td>1000012342015292781</td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="even">
                <td>cameron@email.com</td>

                <td></td>

                <td></td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="odd">
                <td></td>

                <td>jeniper@yay.com</td>

                <td>1734001234268</td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="even">
                <td>test@iaretester.com</td>

                <td></td>

                <td></td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="odd">
                <td></td>

                <td>dou@blah.com</td>

                <td>10000201142345292781</td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="even">
                <td>delze@tester.net</td>

                <td></td>

                <td></td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="odd">
                <td>boo@boo.com</td>

                <td></td>

                <td></td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="even">
                <td>petroz@ouch.com</td>

                <td>petroz@test.com</td>

                <td>100000723143211905</td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="odd">
                <td>helze@arg.com</td>

                <td></td>

                <td></td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>

            <tr class="even">
                <td></td>

                <td>cameron@test.com</td>

                <td>8197906212343</td>

                <td><a href="#" class="drop">Delete</a></td>
            </tr>
        </tbody>

1 个答案:

答案 0 :(得分:6)

这应该这样做:

var val = $(e.target).closest('td').siblings(':first-child').text();  

现场演示: http://jsfiddle.net/simevidas/JZwxD/