jQuery on change don';t返回属性值


jQuery on change don't return attribute value

在更改属性id时显示选择有问题。

PHP:

<form action="" class="form-inline">
    <div class="form-group">
        <select name="kategorijos" id="kategorijos" class="category form-control" onchange="fetch_select_category(this.value);">
            <option value=""></option>
            FOREACH
        </select>
    </div>
    <div class="form-group">
        <fieldset disabled>
            <select id="disabledSelect" name="subcategories" class="subcategory form-control" onchange="fetch_select_product(this.value);" required>
                <option value="" disabled selected>Select Subcategory</option>
            </select>
        </fieldset>
    </div>
    <div class="form-group">
        <td><input type="text" name="gramai" class="form-control" value=""></td>
    </div>
    <div class="form-group" id="kalb">
        <input type='text' name='1[]' value="-" disabled>
        <input type='text' name='12[]' value="-" disabled>
        <input type='text' name='123[]' value="-" disabled>
        <input type='text' name='1234[]' value="-" disabled>
    </div>
</form>

我的jquery代码:

$("select").on('change', function() {
    var status = $('select').attr('id');
    alert(status); 
});
var categoryId = 0;
var category = 0;
var product = 0;
var disableId = 0;
$("#add").click(function () {
    categoryId = categoryId + 1;
    category = category + 1;
    product = product + 1;
    disableId = disableId + 1;
    $("#item").append('<div class="col-xs-12"><form action="" 
        class="form-inline"><div class="form-group"><select name="kategorijos" 
        **....... same code as above (php)**
    });

当我选择第一行时,它会提醒值。但后来我用添加按钮添加新行,然后更改第二个选择警报不起作用,我没有得到选择id。问题出在哪里?也许它不适用于appendhtml?

您需要对动态生成的元素使用事件委派,还需要使用this而不是'select'来获得下拉列表的id

$(document).on('change', 'select', function() {
    var status = $(this).attr('id');
    alert(status); 
});