如何在另一个表格单元格中引用textarea值?

时间:2011-06-01 21:16:08

标签: jquery jquery-selectors

我想引用文本区域的内容,但我一直未定义:

$(".send-comment").click(function(e) {
    e.preventDefault();
    var data = $(this).siblings(".comment-text").val();
    alert(data);
});

<tr>
    <td>#textAreaTag(label=false, name="comment[text]", class="comment-text")#</td>
    <td>#submitTag(value="Send", class="send-comment")#</td>
</tr>

我怀疑这可能是因为发送按钮没有兄弟姐妹(它在td中是独一无二的)......但是当然,必须有更好的方法来获取值而不是使用this.parent().sibling() .child()...

我正在使用课程,因为我在同一页面上有几个属于不同帖子的评论表单。

仅供参考,我的框架生成的源代码符合预期......

3 个答案:

答案 0 :(得分:1)

试试这个:

$(".send-comment").click(function(e) {     
    e.preventDefault();     
    var prevCell = $(this).parent().prev();
    var data = $(".comment-text", prevCell).val();     
    alert(data); 
}); 

替代:

$(".send-comment").click(function(e) {     
    e.preventDefault();     
    var data = $(".comment-text", $(this).closest("tr")).val();     
    alert(data); 
}); 

答案 1 :(得分:1)

文本区域不是提交按钮的兄弟(根据您的代码)。提交按钮的父母(父母td)兄弟(td)孩子是提交标签。

所以你的代码应该是:

var data = $(this).parent().prev().find(".comment-text").val();

答案 2 :(得分:1)

您可以使用$(this).closest('tr').find('.comment-text')例如