javascript - jQuery 选择器添加一个字符串,但选择得到未定义的值

标签 javascript jquery html

如下代码,他们实际上有5个学校下拉列表和5个部门下拉列表。因此,它将有五个 id,分别是 school_1school_2school_3...等等。这五个学校下拉列表中的选项都是相同的,相同的值,相同的文本。

部门下拉列表(id="dept_x")会显示属于我在学校下拉列表中选择的学校的不同部门列表。

school_1连接到dept_1school_2连接到dept_2,等等。

现在,我在获取 selected 值时遇到了问题。 jQuery 中的代码 var school_code = $("#school_"+ num).val();。我总是得到值 undefined

如果我使用选择器 "#school_1"#school_2 或其他,而不是 "#school_"+ num ,那么它会完美地工作。它们都做同样的事情,所以我选择使用 for 循环。

我该如何解决这个问题?或者其他更好的方法?

非常感谢!

示例 HTML:

<select id="school_1" name="school_1" class="form-control">
    <option value="1001">school-A</option>
    <option value="1002">school-B</option>
    <option value="1003">school-C</option>
    <option value="1004">school-D</option>
</select>

<select id="dept_1" name="dept_1" class="form-control"></select>

jQuery:

var school_num = '5';   //the value 5 is comes from a php variable and it's a string.
for(var num = 1; num <= parseInt(school_num); num++){

    num = String(num);
    //console.log("#school_" + num);

    $("#school_" + num).change(function(){
    $("#dept_" + num + " > option").remove();

        var school_code = $("#school_" + num).val();
        console.log(school_code);

        //then doing ajax to get department data in the database.

    });
}

最佳答案

我建议您使用一个通用类,即 school 来绑定(bind) change 事件处理程序。将任意数据存储在 data-* 自定义属性中,可以使用 .data(key) 获取.另外.empty()可用于删除所有子节点。

HTML

<select name="school_1" class="form-control school" data-id="1">
    <option value="1001">school-A</option>
    <option value="1002">school-B</option>
    <option value="1003">school-C</option>
    <option value="1004">school-D</option>
</select>

脚本

$(".school").change(function(){
    var num = $(this).data('id');
    var dept = $("#dept_" + num);

    //remove options
    dept.empty();

    var school_code = $(this).val();
    console.log(school_code);

    //then doing ajax to get department data in the database.
});

关于javascript - jQuery 选择器添加一个字符串,但选择得到未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861864/

相关文章:

javascript - 在 PHP(或服务器端)中检测 iOS 的最新和 future 证明方法

javascript - 尝试向 js 文件添加事件监听器

javascript - 对光环延迟的误解! JS

javascript - 在 Jquery 模板上,如何动态设置 css 类?

javascript - Ajax serialize() 方法没有读取 html 表单的所有数据字段

javascript - 为 Bootstrap 元素加载 cookie 的更好方法

angularjs - 用于 HTML 格式化的 Angular 过滤器

javascript - 为什么这个网站使用 html5 pushstate 对 seo 不友好?

javascript - 如何在没有 jQuery 插件的情况下格式化输入电话号码?

javascript - 为什么我无法让 Progressbar.js 在 Jquery 中工作?