使用jquery获取最近的表格单元格中的文本区域的值

时间:2017-06-08 17:04:44

标签: javascript jquery

我有下表

<tr>
<td data-toggle="tooltip" title="Not Started"><img  src="images/small_info_icon.png"></td>
<td>Demo Demo</td>
<td>January</td>
<td class="updaterow"><textarea class="form-control" rows="5" id="notes34455" name="editcomments">Not Started</textarea></td>
<td id="34455"><button type="button" id="updatestatus" class="btn btn-info btn-sm">Update</button> </td>
</tr>

我想使用jquery来获取textarea的值。 我正在使用以下内容,但它是未定义的。

$("button#updatestatus").click(function(){
var id = $(this).closest('td').attr('id');
var data = $(this).closest("updaterow").text;     
alert(data); 
var data = {
            id: id,

            };
$.ajax({
type: "POST",
url: "updatestatus.php",
data: data
}).done(function(msg) {
console.log(msg);           
});

是否可以获得textarea的textvalue?

3 个答案:

答案 0 :(得分:1)

.closest()查找与选择器匹配的最接近的包含元素。 .updaterow不包含button#updatestatus,因此无法找到它。 .updaterow是之前的td,因此它应该是:

var data = $(this).closest("tr").siblings(".updaterow").text();

您还忘记了.中的.updaterow()中的.text()

答案 1 :(得分:1)

这就是你想要的

$("button#updatestatus").click(function(){

var data = $(this).parent().prev("td.updaterow").find("textarea").val();     
alert(data); 

});

这是一个例子

$("button#updatestatus").click(function(){

var data = $(this).parent().prev("td.updaterow").find("textarea").val();     
alert(data); 
       
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>


<table>
<tr>
<td data-toggle="tooltip" title="Not Started"><img  src="images/small_info_icon.png"></td>
<td>Demo Demo</td>
<td>January</td>
<td class="updaterow"><textarea class="form-control" rows="5" id="notes34455" name="editcomments">Not Started</textarea></td>
<td id="34455"><button type="button" id="updatestatus" class="btn btn-info btn-sm">Update</button> </td>
</tr>

</table>

</html>

答案 2 :(得分:0)

这就是你所需要的 -

$(this).closest('tr').find('textarea').val();

这是同一个小提琴 - https://jsfiddle.net/v44rzxLo/1/。另外,对于多个元素,不要使用相同的ID。