使用变量在 javascript 中重复

Repetition in javascript using variables

我正在努力简化我的 javascript。这就是我得到的:

$("select#selectme").change(function () {
        $(this).find("option:selected").each(function () {
            if ($(this).attr("value") == "select-a") {
                $('#industry').val('a1');
            }
            else if ($(this).attr("value") == "select-b") {
                $('#industry').val('b1');
            }
    });
    }).change();

等,对于整个字母表。我想动态获取字母表中的字母,以避免重复: "select-x" 和 .val('x1);等等 最好的方法是什么?谢谢

$("select#selectme").change(function () {
    $(this).find("option:selected").each(function () {
        var val = $(this).attr("value"),
            letter = val.substring(val.length - 1);
        $("#industry").val(letter + "1");
    });
}).change();

您可以获得这样的字母,因此您不需要整个字母表的所有 if 条件。

您也只是覆盖了 #industry 的值,因此在这种情况下您对所选选项的迭代似乎是不必要的。你可以只得到最后一个的值,但我假设你实际上有另一个原因进行这次迭代?

如果您实际上不需要循环遍历所选选项,您可以去掉它并获取最后一个

$("select#selectme").change(function () {
    var val = $(this).val(),
        lastval = val[val.length - 1],
        letter = lastval.substring(lastval.length - 1);
    $("#industry").val(letter + "1");
}).change();

Ozan 的回答很好,我也在做类似的事情。但是,我正在使用正则表达式,我想这会使它更安全。

$("select#selectme").change(function () {
    $(this).find("option:selected").each(function () {
        var letter = $(this).attr('value').match(/select-(.)/).n[1];
        $("#industry").val(letter+'1');
    });
}).change();