本来是用jsp写的一个列表页面,每一个列表绑定一个onclick事件,不想通过类名方法去绑定,最后想着通过内联方式直接绑定,就写了
<button type="button" value="${user.uid}" class="btn btn-danger" onclick="deleteUser()">删除</button>
js是这样写的
deleteUser = function () {
const id = $(this).val();
}
但是打印是空,并没有找到相应的value。后来打印了this,发现并不是button这个标签,打印的是windos。后来发现:写在元素上onclick里面的函数changeContent,函数里面使用的this指向全局对象window,而不是指向该元素。那么要获取onclick所在节点的object,我们则需要在调用function时就把this传递过去:
<button type="button" value="${user.uid}" class="btn btn-danger" onclick="deleteUser(this)">删除</button>
deleteUser = function (obj) {
const id = $(obj).val();
}
此时,$(obj)指向的就是该button标签。