我的代码通常是这样的:
HTML CODE:
<select id="mySelectOne">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
JS CODE:
$("#mySelectOne").on("change",function(){
var value = $(this).val(); // Return the value selected
alert(value);
});
使用箭头功能:
$("#mySelectTwo").on("change", () => {
var value = $(this).val(); //"this" is undefined
alert(value);
});
DEMO: https://jsfiddle.net/cmedina/kr1hxxtm/
当我使用箭头功能时,this
的值为undefined
(应引用选择元素)。
如何传递参数?
答案 0 :(得分:8)
你不能。这是箭头功能的一半,它们关闭this
而不是按照他们的方式设置自己的设置。对于问题中的用例,如果您希望在调用处理程序时由jQuery设置this
,则处理程序需要是function
函数。
但如果你有理由使用箭头(也许你想用this
表示箭头之外的含义),你可以使用e.currentTarget
而不是this
像:
$("#mySelectTwo").on("change", e => { // Note `e` argument
var value = $(e.currentTarget).val(); // ...and using it here
alert(value);
});
事件对象上的currentTarget
与调用处理程序时jQuery设置this
的内容相同。