我使用jquery来开发表格,我需要使用下面显示的点击事件示例获取特定的行值:
Jquery的:
$(document).ready(function () {
$('#UsertTypeName').change(function () {
$.get('/Home/Userdetails/' + $('#UsertTypeName').val(), function (data) {
var items = "<table><tr><th>Name</th><th>Email_id</th><th>UserType</th><th colspan='2'>Actions</th></tr>";
$.each(data, function (i, count) {
items += "<tr><td >" + count.FirstName + "</td><td class="+'test'+">" + count.EmailId + "</td><td>" + count.UsertTypeName + "</td><td>" + '<input type="Submit" value="Edit" class="editdata" />' + "</td><td>" +'<input type="submit" Value="Delete" id="deldata">' + "</td></tr>";
});
$('#rdata').html(items);
items += "</table>";
$('.editdata').click(function () {
alert("edit working");
var url = "/Home/Edit/";
$.ajax({
type: "post",
url: url,
data: $('.test').val(),
success: function (data) {
$('#testing').html(data)
}
});
});
});
});
});
我尝试使用。$ ajax获取电子邮件值,但它只返回空值
我无法找到我错过价值的地方..你能帮助我吗?谢谢你。
答案 0 :(得分:0)
如果您希望得到count.EmailId
值,这听起来像您想要的那样,当有人点击同一行中的<input type="Submit" value="Edit" class="editdata" />
时,您可以使用jQuery查找父{{1}然后找到包含数据的<tr>
,而不引用类<td>
,这将返回一个数组。像这样的东西:
.test
这会将第二个var emailId = $(this).parent('td').parent('tr').find('td:eq(1)').text();
与用户点击的<td>
放在同一行,并将列中的文字存储为input
:
emailId
您的代码中存在设计问题,我也想指出。预计您的表格在其正文中会有多行, $('.editdata').click(function () {
alert("edit working");
var emailId = $(this).parent('td').parent('tr').find('td:eq(1)').text();
var url = "/Home/Edit/";
$.ajax({
type: "post",
url: url,
data: emailId,
success: function (data) {
$('#testing').html(data)
}
});
会导致多个元素<input type="submit" Value="Delete" id="deldata">
作为其ID,当您尝试将事件处理程序附加到其中时会导致一些令人头疼的问题ID,因为ID字段应该是唯一的。