我正在编写一个代码,其中在 document.ready 函数中我动态地创建了一些<select>
带有预定义选项的元素,每个元素都有一个特定的 id。
(例如#Select1、#Select2、...)。
每次按下按钮,您都可以创建一个新的选择元素。我的问题是 jquery 中是否有任何方法,所以每次选择一个选项时都能看到我选择了哪个选项以及来自哪个选择元素?类似于.change()
和option:selected
jQuery 函数,但唯一的区别是我不知道元素的 id。
您需要使用delegate event
like on
:
$('#containerId').on('change', 'select', function(){
this.id // the select id.
this.value // this is the selected option value
$(this).val() // this is the selected option value that works in all browsers
});
这将为具有 id 的元素下的每个元素添加一个change
回调,无论它们是何时创建的。<select>
containerId
$('#container').on('change', 'select[id^=Select]', function() {
// get the select id
console.log(this.id);
// get the select value
console.log(this.value); // or $(this).val();
// To get the selected option's text
console.log($('option:selected', this).text());
});
#container
是所有select
s 的父级。
select[id^=Select]
检测所有select
,其id
开头为Select
笔记:
.selected()
在 jQuery中没有任何东西。