【发布时间】:2021-06-29 06:19:35
【问题描述】:
我有这张桌子:
<html>
<body>
<table id="user-table">
<tr >
<th>First Name</th>
<th>Last Name</th>
</tr>
</table>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"</script>
<script src="get-users.js"></script>
<script src="delete-user.js"></script>
</body>
</html>
这是get-users.js 填充表格的文件:
let $userTable = $("#user-table");
let $xhr = $.ajax({
method: "GET",
url: "http://localhost:8080/user-rest-api",
dataType: 'json'
});
$xhr.done(function (data) {
for (let user of data) {
$userTable.append(`
<tr>
<td> ${user.firstName}</td>,
<td> ${user.lastName} </td>
<td> <button class = 'delete-btn' value=${user.id}>Delete</button> </td>
</tr>
`);
}
});
在delete-user.js 我只想打印用户ID,这就是我尝试过的:
$('#user-table').on('click', '.delete-btn', function () {
let userId = $(".delete-btn").val();
console.log("User ID : " + userId);
});
但它只打印第一个 id,如何根据点击的按钮动态获取值?
【问题讨论】:
-
尝试使用 $(this).val() 而不是 $(".delete-btn").val();
-
@osekmedia 谢谢,它有效。但这是从表中获取一些价值的正确方法吗?
-
虽然按钮可以有值(我不知道!)你最好通过数据属性传递(非表单输入)数据。
<button data-id='1' >click</button>然后let id = $('button').data('id') -
我同意@Kinglish,如果是我,我可能会使用数据标签,但两种方法都可以。如果你按照他的建议使用数据标签,你会想要使用 $(this).data('id');在您的点击中。
标签: javascript html jquery