我有以下代码将click事件功能连接到提交按钮。我知道event.target
和this
并不总是相同(据我所知,它取决于事件所附加的位置以及实际触发事件的人)但在这种情况下,事件附加到按钮上按钮也开了它,所以它们应该是一样的。或者我错了吗?
modals.init = function () {
// wire up submit() function to the submit button
modals.config.$submitBtn.on('click', submit);
};
function submit(event) {
event.preventDefault();
var $this = $(this);
alert(event.target.id); // fine
alert($this.id); // undefined
}
答案 0 :(得分:5)
是$this.attr("id")
(jQuery元素)或this.id
(DOM元素)
答案 1 :(得分:2)
是的,然后是this === event.target
。
但如果将其包装到jQuery
包装器中,则它不再具有id
属性。您可以使用this.id
或$(this).attr('id')
获取属性,也可以使用$(this).prop('id')
获取this.id
。
答案 2 :(得分:1)
在这种情况下,this
被限制为被点击的元素,因此没有.id
属性,它是被点击元素的jQuery表示。
答案 3 :(得分:1)
使用代码$(this)
生成一个jquery对象,你必须使用jquery函数:alert($this.attr("id));
。