Javascript 当我尝试访问元素的数据时,为什么jQuery返回未定义的?
我正在尝试访问复选框的data属性,以便传递到PHP脚本以更新我的数据库 HTML如下所示:Javascript 当我尝试访问元素的数据时,为什么jQuery返回未定义的?,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试访问复选框的data属性,以便传递到PHP脚本以更新我的数据库 HTML如下所示: <input type="checkbox" data-entid="1"onchange="updateOrDeleteEntitlements()" checked> 行varent=$this.data'entid';应该存储复选框中保存的数据,以便我可以在AJAX中传递它,但返回未定义的数据 花了大约一个小时尝试一些稍有不同的东西,但似乎没有任何效果。我在代码的其他地方也使用了同
<input type="checkbox" data-entid="1"onchange="updateOrDeleteEntitlements()"
checked>
行varent=$this.data'entid';应该存储复选框中保存的数据,以便我可以在AJAX中传递它,但返回未定义的数据
花了大约一个小时尝试一些稍有不同的东西,但似乎没有任何效果。我在代码的其他地方也使用了同样的东西,但是从tr而不是输入中提取数据,所以我完全迷糊了
非常感谢您的任何帮助这并不是指它所指的窗口对象的复选框元素。您需要在内联更改事件处理程序和方法中传递当前元素,即,接受它,然后使用它检索数据
HTML
我建议您使用不引人注目的事件处理技术。使用方法附加事件处理程序。使用它,这将引用复选框,因此您的代码将起作用
HTML
$'.myCheckbox'。在“更改”上,更新订单删除权限;
函数更新或删除权限{
var ent=$this.data'entid';
控制台
}
这不引用它引用的窗口对象的复选框元素。您需要在内联更改事件处理程序和方法中传递当前元素,即,接受它,然后使用它检索数据
HTML
我建议您使用不引人注目的事件处理技术。使用方法附加事件处理程序。使用它,这将引用复选框,因此您的代码将起作用
HTML
$'.myCheckbox'。在“更改”上,更新订单删除权限;
函数更新或删除权限{
var ent=$this.data'entid';
控制台
}
您在没有上下文的情况下调用函数,因此这不是您认为它应该是的元素 您可以按如下方式设置上下文:
<input type="checkbox" data-entid="1" onchange="updateOrDeleteEntitlements.call(this)">
根据需要调整传递给$的选择器。您在没有上下文的情况下调用函数,因此这不是您认为应该是的元素 您可以按如下方式设置上下文:
<input type="checkbox" data-entid="1" onchange="updateOrDeleteEntitlements.call(this)">
根据需要将传递的选择器调整为$。在此行中
var ent = $(this).data('entid');
您打算获取复选框的data entid属性,但这不是您的复选框。未经检验的建议:
<input type="checkbox" data-entid="1"onchange="updateOrDeleteEntitlements(this)"
checked>
在这一行
var ent = $(this).data('entid');
您打算获取复选框的data entid属性,但这不是您的复选框。未经检验的建议:
<input type="checkbox" data-entid="1"onchange="updateOrDeleteEntitlements(this)"
checked>
脚本无法了解$this是什么脚本无法了解$this是什么
$('input[type=checkbox]').change(updateOrDeleteEntitlements);
var ent = $(this).data('entid');
<input type="checkbox" data-entid="1"onchange="updateOrDeleteEntitlements(this)"
checked>
function updateOrDeleteEntitlements(context) {
var role = $('#selectedRole').val();
var ent = $(context).data('entid');
var binMe = '';
$.ajax({
url: 'ajax/update_delete_entitlements.php',
type: 'post',
data: {'role': $role, 'ent': ent, 'delete': $binMe},
success: function(data) {
console.log(data);
}
});
}