匹配两个数组 jquery 并在 value 和 data-attribute 之间的匹配中添加一个属性

Match two arrays with jquery and add an attribute to the matching between value and data-attribute

尝试使用 jquery 在选定选项的数组中查找数据值,当找到它时,我想添加一个属性,因为它们是一个选项标签,一个选定的属性。

看似简单,实则不然

我的代码如下:

function selected_element() {

            var association = $("#association").children("option").map(function() {
                return this.value;
            }).get();

            var ass_val =  $("#association").children("option");

            console.log(ass_val, association);

            var ass_data = $("#association").children("option").attr('data-selected');

            console.log(ass_data );

            if (ass_val == ass_data) {
                $("#association").children("option").val(ass_data).attr("selected","selected");
            }



        };
        selected_element();

这只是一个例子:

我的第一行将映射我的数组,所以我 return 值 (1,2,3,4)。

我的第二行将 return 选项和值,但我不能用它们做很多事情。

我的 ass_data 实际上是我在这种情况下用来检索数据标签的数组(数据选择)。

我的最后一行代码只是我希望实现的示例:

if (ass_val == ass_data) {
                    $("#association").children("option").val(ass_data).attr("selected","selected");
                }



            };

不会用,只是为了展示我的想法。

假设值是唯一的,您可以只为下拉列表添加一个事件侦听器,然后 find() :selected option:

$("#association").on("change", function () {
    var t   = $(this),
        val = t.val();

        if (val) { // filter out empty/null values as possible matches
             t.find(":selected").attr({<put attribute name here> : <attribute value here>});

             // for example
             // t.find(":selected").attr({"data-selected" : true});

        }
});