我想引用文本区域的内容,但我一直未定义:
$(".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()...
我正在使用课程,因为我在同一页面上有几个属于不同帖子的评论表单。
仅供参考,我的框架生成的源代码符合预期......
答案 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')
例如