使用jquery在表中获取下一个单元格(在右侧)

时间:2014-02-26 09:08:53

标签: javascript jquery html

编辑很抱歉混淆我正在寻找右边的单元格>。<

您只想询问如何使用jquery获取表格中的下一个单元格(右侧)。我尝试使用alert(result)命令来捕获结果,但它给了我一个未定义的值。当使用alert(div)获取div的属性时,它会给我所需的结果。

HTML

<div id='tab1' class='2nd_shift'>
    <table border='1' id='table_id' style='margin: 10px' ; cellpadding='1' cellspacing='1' bordercolor='#333333' bgcolor='#C0CCD0'>
        <tr>
            <th><font size='2' face='Baskerville' id='systems' class='systems'>SYSTEMS</font></th>
            <th><font size='2' face='Baskerville' id='schedule' class='schedule'>SCHED</font></th>
            <th><font size='2' face='Baskerville' id='start_time' class='start_time'>START_TIME</font></th>
            <th><font size='2' face='Baskerville' id='end_time' class='end_time'>END_TIME</font></th>
            <th><font size='2' face='Baskerville'>DURATION</font></th>
            <th><font size='2' face='Baskerville'>DONE_BY</font></th>
            <th><font size='2' face='Baskerville'>REMARKS</font></th>
        </tr>
        <tr>
            <td><font size='2' color='red' face='Baskerville'><b>2ND SHIFT</b></font></td>
        </tr>
        <tr>
            <td><font size='1' face='Baskerville'></font></td>
            <td><font size='1' face='Baskerville'></font></td>
            <td><input type='text' style='width: 120px' font size='1' face='Baskerville' onclick='youClickStart()' class='start_time' id=''></font></td>
            <td><input type='text' style='width: 120px' font size='1' face='Baskerville' onclick='youClickEnd()' class='end_time' id=''></font></td>
            <td><font size='1' face='Baskerville'></font></td>
            <td><font size='1' face='Baskerville'></font></td>
            <td><input type='text' style='width: 120px' font size='1' face='Baskerville' class='remarks' id=''></font></td>
        </tr>
        </tr>
    </table>
</div>

的Javascript

$(document).ready(function () {
    $('.remarks, .start_time, .end_time').blur(function () {
        var div = $(this).parent().closest('div').attr('class');
        var column = $(this).attr('class');
        var id = $(this).attr('id');
        var getval = $(this).val();
        $('#getdiv').val(div);
        $('#getcolumn').val(column);
        $('#getid').val(id);
        $('#getvalue').val(getval);
        /*condition*/
        if (column == 'end_time') {}
        if (column == 'start_time') {
            var result = $(this).closest('td').next().attr('.class');
            alert(result);
            alert(div);
        }
    });
});

提前致谢=)

2 个答案:

答案 0 :(得分:1)

左侧的下一列是上一个元素,因此请使用.prev()

var result = $(this).closest('td').prev().attr('class');

答案 1 :(得分:0)

有两个问题:

var result = $(this).closest('td').next().attr('.class');
  1. 您正在尝试获取名为.class的属性 - 注意点。您需要名为class的属性。
  2. 下一个元素只有HTML <td>所以它上面没有任何类;修复第一个问题时,你可能会得到一个空字符串。
  3. 除此之外,您的HTML看起来不正确。您正在创建<input>元素,但之后会立即生成</font>标记。