无法使用prev和prevAll遍历上​​一列

时间:2014-08-12 08:29:45

标签: javascript jquery

我需要帮助才能使用prev,prevAll来从列中获取文本。 JSfiddle链接:http://jsfiddle.net/tschew/0gofwnfm/6/

如果我的起点是超链接,程序将无法正确遍历上一列。但是,如果起点在a中,我可以毫无问题地遍历上一列。我需要能够在超链接中找到起点。

第一个不起作用!

$('.a1').prevAll('td:first').css('backgroundColor', 'yellow'); 
alert($('.a1').prev('td:first').text())

第二个工作!

 $('.td1').prevAll('td:first').css('backgroundColor', 'orange'); //This works!
    alert($('.td1').prev('td:first').text())

这是表格:

<table>
    <col width="180" />
    <col width="180" />
    <col width="180" />
    <tr class="usetr">
        <td>Row 1, Col 1</td>
        <td>Row 1, Col 2</td>
        <td>Row 1, Col 3</td>
    </tr>
    <tr>
        <td>Row 2, Col 1</td>
        <td>Row 2, Col 2</td>
        <td>Row 2, Col 3</td>
    </tr>
    <tr>
        <td class="td3">Row 3, Col 1</td>
        <td class="td4">Row 3, Col 2</td>
        <td class="td5">Row 3, Col 3</td>
    </tr>
    <tr>
        <td><a class="a2" href="#">Row 4, Col 1 </a>

        </td>
        <td class="td1"><a class="a1" href="#">Row 4, Col 2 </a>

        </td>
        <td class="td2"><a class="a3" href="#">Row 4, Col 3 </a>

        </td>
    </tr>
</table>

1 个答案:

答案 0 :(得分:0)

试过这个,它的确有效!这是JSFiddle更新:http://jsfiddle.net/tschew/0gofwnfm/11/ 但我不知道为什么。谁能解释一下?

$('.a1').closest(":has(td)").find('.a2').css('backgroundColor','yellow'); 
alert($('.a1').closest(":has(td)").find('.a2').text())

这是另一个也会起作用的片段!感谢georg

$('.a1').closest('td').prev().css('backgroundColor', 'yellow');
alert($('.a1').closest('td').prev().text())