-1

以下代码运行并为每个选择元素返回正确的值,但它没有获取元素的 id 或名称。它总是返回未定义的。

$("#MainContent_Button3").click(function (event) {

        $(".quantities option:selected").each(function (i) {
            alert($(this).attr('id') + " : " + $(this).val());
        });

    $('#medications').trigger('close');
});

我试过了:

alert($(this).attr('name') + " : " + $(this).val());
alert(this.attr('id') + " : " + $(this).val());
alert($(this).attr('id') + " : " + $(this).val());
alert($(this).prop('id') + " : " + $(this).val());
alert(this.id + " : " + $(this).val());
alert(i.id + " : " + $(this).val());

这是HTML

<select id="ddl1" name="ddl3" class="quantities">
                <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>10</option>
                <option>11</option>
                <option>12</option>
                <option>13</option>
                <option>14</option>
                <option>15</option>
                <option>16</option>
                <option>17</option>
                <option>18</option>
                <option>19</option>
                <option>20</option>
            </select>
4

2 回答 2

2

您必须找到最近的父select标签才能获得selectcurrent option。每个中的关键字 this 代表optionnot select

alert($(this).closest('select').attr('id') + " : " + $(this).closest('select').val());
于 2013-08-30T15:23:25.300 回答
1
$(".quantities option:selected") //-- Returns the option element

您需要实际上是父元素的选择元素,因此请尝试如下所示,

 $(".quantities option:selected").each(function (i) {
     var $parent = $(this).parent();
     alert($parent.attr('id') + " : " + $parent.val());
 });

我假设您有更多代码可以使用option元素,如果不迭代,$('.quantities')那么this它将是select而不是option元素。

于 2013-08-30T15:26:00.147 回答