Сопоставьте два массива с jquery и добавьте атрибут в соответствие между значением и атрибутом данных - PullRequest
0 голосов
/ 04 июня 2018

Попробуйте найти значение данных в массиве в выбранном параметре с помощью 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();

Это всего лишь пример:

Моя первая строка отобразит мой массив, поэтому я возвращаю значение (1, 2, 3, 4).

Моя вторая строка будет возвращать как опции, так и значения, но я не могу ничего с ними сделать.

Мои ass_data на самом деле - это массив, который я использую для извлечения тега данных в этом случае (data-selected).

Моя последняя строка кода является лишь примером того, чего я хочу достичь:

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



            };

Это не сработает, просто чтобы показать мою идею.

1 Ответ

0 голосов
/ 04 июня 2018

Если значения уникальны, вы можете просто добавить прослушиватель событий для выпадающего списка, а затем find() the : 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});

        }
});
...