0

我正在编写一个代码,其中在 document.ready 函数中我动态地创建了一些<select>带有预定义选项的元素,每个元素都有一个特定的 id。
(例如#Select1、#Select2、...)。

每次按下按钮,您都可以创建一个新的选择元素。我的问题是 jquery 中是否有任何方法,所以每次选择一个选项时都能看到我选择了哪个选项以及来自哪个选择元素?类似于.change()option:selectedjQuery 函数,但唯一的区别是我不知道元素的 id。

4

2 回答 2

2

您需要使用delegate eventlike 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

于 2012-05-29T06:58:22.187 回答
1
$('#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是所有selects 的父级。

select[id^=Select]检测所有select,其id开头为Select

笔记:

.selected()在 jQuery中没有任何东西。

于 2012-05-29T07:00:03.893 回答