获得嵌套在td tr jquery中的下一个textarea的值

时间:2012-12-21 18:35:37

标签: jquery

我疯狂地想弄清楚如何获得底部textarea的价值。我是jquery / javascript的新手,我确定是问题,我已经尝试了几个小时来找出一个有效的代码组合来检索它。

我试图在第一次更改时收集这两个表行的底部文本区域的值。我可以在改变时获得第一个textarea值,但是当对顶部textarea进行更改时,我需要底部值的值。一旦我能够弄清楚这一点,我需要编写一个函数来在底部更改时获得顶部,我确定一旦得到初始解决方案,我就可以弄清楚如何反转过程。

不需要tableRow类和id名称我在测试过程中添加了这些名称。

任何帮助都会受到极大的赞赏。

// HTML

<tr class="years" id="yearStart">
    <td class="fieldlabel">Year Range Start</td>
    <td colspan="7" class="textareacontainer">
        <textarea class="multiedit-field" name="yearRangeStart-<?php echo $k->id; ?>">
        <?php echo $k->yearRangeStart; ?></textarea>
    </td>
</tr>
<tr class="years" id="yearEnd">
    <td class="fieldlabel">Year Range End</td>
    <td colspan="7" class="textareacontainer">
        <textarea class="multiedit-field" name="yearRangeEnd-<?php echo $k->id; ?>">
        <?php echo $k->yearRangeEnd; ?></textarea>
    </td>
</tr>

// jquery的

$("#yearStart textarea").live("change", function(){

yearStart = $(this).val();

yearEnd = $(this).next('tr.years').find('textarea').val();

$.post("http://localhost:8888/...",
{
yearStart: yearStart,
yearEnd: yearEnd
},
function(data,status){
alert("\nEnd: " + yearEnd + "\nStart: " + yearStart + "\nData: " + data + "\nStatus: " + status);
});
});

1 个答案:

答案 0 :(得分:5)

在这一行:

 yearEnd = $(this).next('tr.years').find('textarea').val();

$(this)指向textarea,而不是tr。

尝试:

yearEnd = $(this).closest('tr').next('tr.years').find('textarea').val();