我试图获取属性'data-tablename'的值。
$.ajax({
type: 'post',
url: "<?= base_url(); ?>table/moveTable/",
data: "table_name=" + $(this).attr("data-tablename"),
success: function(r) {
$.notify($(this).attr("data-tablename") + " was successfully added", "success");
}
});
当我尝试使用此代码时,我收到消息“未定义已成功添加”
我如何获得它的价值?
答案 0 :(得分:2)
在ajax调用之前添加var tableName = $(this).attr("data-tablename");
,然后用tableName变量替换$(this).attr("data-tablename")
答案 1 :(得分:1)
您应该在ajax操作之前将$(this)赋值给变量,然后在匿名函数中使用该变量:
var $this = $(this);
$.ajax({
type: 'post',
url: "<?= base_url(); ?>table/moveTable/",
data: { "table_name": $(this).attr("data-tablename") },
success: function(r) {
$.notify($this.attr("data-tablename") + " was successfully added", "success");
}
});
答案 2 :(得分:1)
每当你在另一个函数中定义一个函数时,内部函数中的this
将不会与外部函数相同,除非有特别设置它的东西。在这种情况下,您可以使用jQuery.ajax的context
配置,这会将所有回调中this
的值设置为您想要的任何值。
$.ajax({
type: 'post',
url: "<?= base_url(); ?>table/moveTable/",
data: "table_name=" + $(this).attr("data-tablename"),
context: this,
success: function(r) {
$.notify($(this).attr("data-tablename") + " was successfully added", "success");
}
});