Jquery 选择具有逗号分隔数据属性的项目

Jquery 选择具有逗号分隔数据属性的项目,jquery,Jquery,考虑到以下几点: <option value="de" data-countries="at,ch,li">German</option> 这一个实际上不起作用,因为:contains实际上不知道在哪里搜索 编辑:我可以完全控制源代码,因此如果逗号分隔的列表不理想,我可以进行更改。您需要查看数据属性本身,并使用其中的通配符(*=) $('#select option[data-countries*="' + ccl + '"]') 此处显示的示例: 前面的答案会让您出

考虑到以下几点:

<option value="de" data-countries="at,ch,li">German</option>
这一个实际上不起作用,因为
:contains
实际上不知道在哪里搜索


编辑:我可以完全控制源代码,因此如果逗号分隔的列表不理想,我可以进行更改。

您需要查看数据属性本身,并使用其中的通配符(
*=

$('#select option[data-countries*="' + ccl + '"]')
此处显示的示例:


前面的答案会让您出错,例如,如果两个单词在不同的选项中有相同的字母,请选择

<option value="us" data-countries="atx,chy">US</option>
<option value="de" data-countries="at,ch,li">German</option>

ccl指的是什么?我不太清楚你的问题,但你仍然可以循环选择,获取数据属性,并检查它是否包含你的
ccl
值。在你第二次编辑后,它会起作用。。我有类似的东西,但不是
选项
部分。现在可以了,谢谢!说得好。但是有两个字母的国家代码就不会有问题了。不管怎样,我还是把它弄大了!
<option value="us" data-countries="atx,chy">US</option>
<option value="de" data-countries="at,ch,li">German</option>
$(function () {
    ccl = 'tx';
    $('#select option').each(function(){
        countries = $(this).attr('data-countries');
        val = $(this).attr('value');
        var countriesArr = countries.split(",");
        if(jQuery.inArray(ccl,countriesArr) > -1){
           $('#select').val(val); 
        }
    });
});