Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery获取Select中动态生成的选项的值_Javascript_Jquery_Dynamic Content - Fatal编程技术网

Javascript JQuery获取Select中动态生成的选项的值

Javascript JQuery获取Select中动态生成的选项的值,javascript,jquery,dynamic-content,Javascript,Jquery,Dynamic Content,我试图获取用户在动态生成的select中动态生成的选项上选择的选项的值。现在,我只是想得到一个提醒弹出,但一直没有成功 我曾尝试在docuement.ready中使用.change活页夹,但没有成功,我认为这可能是因为不存在可供其绑定的元素。更改的代码 $(document).ready(function () { $(".lowerSerialSelect").change(function () { alert("red") }); }); 下面是我用来动态

我试图获取用户在动态生成的select中动态生成的选项上选择的选项的值。现在,我只是想得到一个提醒弹出,但一直没有成功

我曾尝试在docuement.ready中使用.change活页夹,但没有成功,我认为这可能是因为不存在可供其绑定的元素。更改的代码

$(document).ready(function () {
    $(".lowerSerialSelect").change(function () {
        alert("red")
    });
});
下面是我用来动态生成select的代码:

if (_interface == "network" && _deviceName == "Not in Use")
    {
        var lowerSerialTd = document.createElement("td");
        lowerSerialTd.className = "lowerSerial";
        trTag.appendChild(lowerSerialTd);
        var lowerSerialSelect = document.createElement("select");
        lowerSerialSelect.className = "lowerSerialSelect";
        lowerSerialSelect.name = "lowerSerial" + identifier;
        lowerSerialSelect.id = _interface + "lowerSerial" + identifier;

        var lowerSerialOption = document.createElement("option");
        lowerSerialSelect.appendChild(lowerSerialOption)

        for (newDevice in newNetworkDevices)
        {
            alert(newNetworkDevices[0]);
            var lowerSerialOption = document.createElement("option");
            lowerSerialOption.innerHTML = newNetworkDevices[newDevice][0];
            lowerSerialOption.className = "networkMacOption";
            lowerSerialOption.id = _interface + "lowerSerial" + identifier;
            lowerSerialOption.value = newNetworkDevices[newDevice];
            lowerSerialSelect.appendChild(lowerSerialOption)
        }

        lowerSerialTd.appendChild(lowerSerialSelect);
        alert("Maybe");
    }
那么.change是否不绑定到尚未创建的元素

如果是这样的话,我每次创建一个新的select时都可以通过重新绑定来解决这个问题吗?(用户将触发新选择,因此不会一次完成所有操作)

我也试过$(“select.”on(“change”,“option”,function(){alert(“red”);});但是没有用。任何帮助或解释都将不胜感激

这是在一个配置页面上,所以代码很长,有800行,所以我不想发布全部内容

谢谢

**编辑**

动态生成的html最终如下所示:

  <select class="lowerSerialSelect" name="lowerSerial2" id="networklowerSerial2">
        <option></option>
        <option class="networkMacOption" id="networklowerSerial2"    value="0080A39166BA,192.168.1.59,47331,1363895658.22">0080A39166BA</option>
  </select>

0080A39166BA

没错,
.change()
不是委托人。试试
.on()


嗯,我只是尝试了一个带有警报的精确代码,但它没有触发,而且我肯定有一个body标签。当我发现这一点时,我可能会做所有的面部表情。哦,我是个白痴,好吧,非常感谢,你是100%正确的。原来我们只是使用了一个过时的JQuery版本。现在我知道把版本代码留在pl中了ugin文件名。实际上仍然不起作用。但是,我现在可以在创建新的select时绑定一个。更改。只希望我知道为什么另一个不起作用,因为这是一种更有效的代码。也许可以尝试将问题隔离到一个或类似的文件中。如果没有看到更多的代码,很难说为什么它不起作用。因此,对于遇到同样问题的任何人,我的问题是使用过时版本的jquery和使用过时版本的jquery工具的组合。
$('body').on('change', '.lowerSerialSelect', function() {
  // code here
});