Javascript Jquery选项选择值与数组中的值匹配

Javascript Jquery选项选择值与数组中的值匹配,javascript,jquery,json,foreach,Javascript,Jquery,Json,Foreach,我有一个选择字段,列出了所有国家/地区。选项val是国家代码,因此对于美国,选项值为US 我在列表中列出了一些产品,每个产品在html中都有一个唯一的国家/地区代码,例如: <div class="restricted-items" data-countries="["TR","UA","AE","GB","US"]"></div> <div class="restricted-items" data-countries="["GB","US"]"></

我有一个选择字段,列出了所有国家/地区。选项val是国家代码,因此对于美国,选项值为US

我在列表中列出了一些产品,每个产品在html中都有一个唯一的国家/地区代码,例如:

<div class="restricted-items" data-countries="["TR","UA","AE","GB","US"]"></div>
<div class="restricted-items" data-countries="["GB","US"]"></div>
etc

任何帮助都将非常感谢

jQuery('.restricted items')
将找到该类的所有元素。假设您的HTML是结构化的,这样您就可以看到每个元素在结构中的位置与哪个产品关联?如果是这样,您可以使用该结构来限制在类中搜索项目的位置。或者在div中添加另一个属性,例如“data product id”,并以此方式限制您的搜索。请提供一个包含相关html结构的列表。此外,您似乎应该在“选择”列表中筛选出产品无法运送到的国家,以获得更好的用户体验。选择某样东西,然后被告知你不能拥有它,这很烦人。。。vs无法首先选择它
$(document).on('change', '.fieldset.estimate.select[name="country_id"]', function() {
    var blacklistCountries = JSON.parse(jQuery('.restricted-items').attr('data-countries'));

    console.log($(this).val());
    console.log(blacklistCountries);

    if($.inArray($(this).find(':selected').val(), blacklistCountries) > -1){
        $('.restricted-items').text('This item cannot be shipped to ' + $(this).find(':selected').attr('data-title'));
    } else {
        if ($('.restricted-items').text().length > 0) {
            $('.restricted-items').empty();
        }
    }
});