Select 的问题 jQuery 的选项循环

Issues with Select Option loop with jQuery

我正在使用 jQuery 遍历许多 Select 选项 html 元素,我可以让它一次工作一个,但我很难访问如果数据存储在 jQuery 元素中。

例如我有这 2 Select html 个元素

var lList = $(".p1_lSelect");

var rList = $(".p1_rSelect");

我可以通过以下方式获得我想要的输出

$(".p1_lSelect option:selected").each(function() {
    selected = $(this).text(); //selected == "p1_lSelect_Data"
    console.log(selected);
});

$(".p1_rSelect option:selected").each(function() {
    selected = $(this).text(); //selected == "p1_rSelect_Data"
    console.log(selected);
});

//Console logs .p1_lSelect_Data and .p1_rSelect_Data as expected

我想要的是类似于以下内容的内容,这样我就可以更改要输入循环的列表

function foo(){
    var lList = $(".p1_lSelect");
    var rList = $(".p1_rSelect");
    bar(lList);
    bar(rList);
}

function bar(list){
    $("list option:selected").each(function() {
        selected = $(this).text();
        console.log(selected);
    });
    //Console log does not print
}

我该怎么做?

您可以传递列表的名称并将其附加到选择器,如下所示:

function foo(){
    bar("p1_lSelect");
    bar("p1_rSelect");
}

function bar(list){
    $(`.${list} option:selected`).each(function() {
        selected = $(this).text();
        console.log(selected);
    });
    //Console log does not print
}

使用find()方法:

function bar(list) {
    list.find("option:selected").each(function() {
        console.log($(this).text());
    });
});

请根据您的结构尝试以下代码:

function foo(){
    var lList = $(".p1_lSelect");
    var rList = $(".p1_rSelect");
    bar(lList);
    bar(rList);
}

function bar(list){
    $(list).find("option:selected").each(function() {
        selected = $(this).text();
        console.log(selected);
    });
    //Console log does not print
}