javascript - 如何修复 $(this).val 在 jquery 的 ajax 调用中返回错误
问题描述
在 ajax 成功调用中,$(this).val() 返回错误;
我有一个表,我从数据库中附加一些值。我正在使用<div contenteditable = "true">
. 所以,当我编辑我的表时,我想获取更改/更新的数据。
因此,在我的 ajax 成功调用中,我将数据附加到表中并使用$(selector).on("blur")
方法来尝试获取更新的数据。
但是,$(this).val()
返回此错误。
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
at w.fn.init.val
$(document).ready(function() {
$("select.option").change(function(e) {
e.preventDefault();
var value = $(this).children("option:selected").val();
console.log(value);
$.ajax({
type: 'post',
url: '/ajax',
data: {
value: value
},
success: function(result) {
if (result.length === 0) {
} else {
console.log(result);
let data = result;
$.each(data, (index, item) => {
$(".tableData").append(`<tr>
<td><div contenteditable = "true" class="edible">${item.st_id}</div></td>
<td><div contenteditable = "true" class="edible">${item.co1}</div></td>
</tr>`);
})
$(".edible").blur((e) => {
e.preventDefault();
console.log($(this).val())
})
}
},
error: function(err) {
console.log(err)
}
});
});
});
我理解这里的问题是,当手动访问$(this)
它时,它指的是窗口本身,而不是我试图访问的元素。但是我对如何访问已编辑/更新的表数据的想法为零。
解决方案
推荐阅读
- c# - 为什么在 datagridview 的列中按日期过滤时会出错?'System.NotSupportedException' DataGridViewAutoFilter.dll
- javascript - 如何在不使用 jquery 的情况下在纯 JavaScript 中使用对象的函数?
- html - 在移动浏览器、Chrome 和 Safari 上不工作的标题标签隐藏溢出。仅适用于桌面浏览器
- powershell - 从 powershell 运行的 jMeter 错误。错误级别=-1073741819
- r - 如何从向量创建多个目录?
- tfs - tfs 2019 Pipeline Builds Triggers 仅在发生新签入时触发
- r - 对 R 中以长度为条件的行成员求和
- asp.net - VB.Net OpenXML 条件分页符
- typescript - 关于接口“扩展”的 TypeScript 问题
- azure-ad-b2c - 使用 Apple 登录 - 按钮自定义