无法获取选择元素ID或名称

时间:2013-08-30 15:21:18

标签: jquery

以下代码运行并为每个select元素返回正确的值,除了它没有获取元素的id或名称。它总是返回undefined。

$("#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>

2 个答案:

答案 0 :(得分:2)

您必须找到最近的父select标记才能获得当前select的{​​{1}}。每个关键字代表option而不是option

select

答案 1 :(得分: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'),那么thisselect而不是option } element。