根据data-attribute在select下拉列表中设置选项

时间:2013-11-04 16:37:27

标签: javascript jquery html

我有一个选择下拉列表,其中包含一个类似这样的国家/地区列表:

<select name="countryCode" id="countryCode">
<option data-countryCode="GB" value="44" Selected>UK (+44)</option>
<option data-countryCode="US" value="1">USA (+1)</option>
<optgroup label="Other countries">
    <option data-countryCode="DZ" value="213">Algeria (+213)</option>
    <option data-countryCode="AD" value="376">Andorra (+376)</option>
</optgroup>
</select>

然后我使用ipinfo.io查找用户的国家/地区,并希望根据返回的国家/地区和data-countryCode属性设置所选的选项。我尝试了一些不同的方法,但我根本无法让它发挥作用。

我创建了一个带有country-selector和lookup的jsfiddle: http://jsfiddle.net/E7fBk/

如何设置下拉菜单以显示用户的国家/地区?

感谢

托马斯

2 个答案:

答案 0 :(得分:6)

尝试

$(function () {
    $.get("http://ipinfo.io", function (response) {
        $('#countryCode option[data-countryCode="' + response.country + '"]').prop('selected', true)
    }, "jsonp");
});

演示:Fiddle

答案 1 :(得分:2)

Fiddle DEMO

$(function () {
    $.get("http://ipinfo.io", function (response) {
        $('#countryCode option[data-countryCode="' + response.country + '"]').prop('selected', true)
    }, "jsonp");
});

Fiddle DEMO

$(function () {
    $.get("http://ipinfo.io", function (response) {
        $('#countryCode').val($('#countryCode [data-countryCode="' + response.country + '"]').val());
    }, "jsonp");
});