我在多个下拉框上执行相同的功能id: assignee, status , priority
。
$("#assignee , #status , #priority").change(function() {
//text here
}
但我想知道点击了哪个特定的下拉菜单。有什么方法可以做到这一点吗?
我在多个下拉框上执行相同的功能id: assignee, status , priority
。
$("#assignee , #status , #priority").change(function() {
//text here
}
但我想知道点击了哪个特定的下拉菜单。有什么方法可以做到这一点吗?
只需使用以下内容:
$("#assignee, #status, #priority").change(function() {
if (this.id === "assignee") { ... }
});
用这个。在任何事件处理程序中,这都指向发生实际事件的元素:
$("#assignee , #status , #priority").change(function() {
var changedElementID = $(this).attr("id");
}
另一种选择是使用event.target
:
$("#assignee , #status , #priority").change(function(e) {
var changedElementID = $(e.target).attr("id");
}
在这里您可以找到有关其他事件对象属性的更多详细信息。
注意this
和e.target
都是 DOM 对象,而不是 jQuery 对象。所以你需要像上面的代码一样用 jquery 包装它来使用 jQuery 函数。如果只是获取一个 id - 您可以直接使用this.id
或e.target.id
更快。
当事件被触发时,事件处理函数内部this
指的是触发事件的元素,所以:
$('#assignee, #status, #priority').change(function(e) {
// Use 'this' to refer to the element that triggered the event
console.log(this.id);
// will output assignee, status or priority depending on which changed
});
使用目标:
$("#assignee , #status , #priority").change(function(e) {
var changedElementID = $(e.target).attr("id");
}
你在哪里绑定你<option>
的传递this
到函数并使用你自己的代码
$("#assignee , #status , #priority").change(function(boxID) {
console.log($(boxID).val()); //Gives you the value of the selected drop down
//text here
}