基于所选选项

时间:2015-04-22 11:07:56

标签: jquery json getjson

我想根据所选选项进行getJSON搜索。例如:如果我在选择选项菜单中选择意大利语,我希望getJSON查询看起来像json.w1.Italian。

我知道这段代码不正确,这就是我寻求帮助的原因。

以下是代码:

<select name="language">
    <option selected="selected" value="english">English</option>
    <option value="german">German</option>
    <option value="spanish">Spanish</option>
    <option value="italian">Italian</option>
    <option value="french">French</option>
    <option value="portuguese">Portuguese</option>
    <option value="dutch">Dutch</option>
    <option value="romanian">Romanian</option>
    <option value="greek">Grek</option>
    <option value="bulgarian">Bulgarian</option>
</select>
<div id="language"></div>

<div id="results"></div>

<script>
    $("select")
        .change(function() {
            var str = "";
            $("select option:selected").each(function() {
                str += $(this).text() + " ";
            });
            $("#language").text(str);

            var query = json.w1.str;

            $.getJSON("lang.json", function(json) {
                $("#results").text(query);
            });
        })
        .change();
</script>

2 个答案:

答案 0 :(得分:2)

您的代码比实际需要复杂得多 - 要获得select的选定值,您只需调用val()即可。然后,您可以使用括号表示法使用键作为字符串从对象中检索项目。试试这个:

$('select').change(function () {
    var lang = $(this).val();
    $("#language").text(lang);
    $.getJSON('lang.json', function(json) {
        $('#results').text(json.w1[lang]);
    });
}).change();

答案 1 :(得分:0)

嘿,你似乎在你的例子中有很多你不需要的代码。没有看到你的结果json我想你想要这样的东西。

https://jsfiddle.net/vpeLq3k4/

$( "select" )
    .change(function () {
    var lang = $( "select option:selected" ).val();
    $( "#language" ).text( lang );
    $.getJSON( "lang.json", function( json ) {
        $( "#results" ).text( json.w1.lang );
    });
});

如果您发布了返回json的示例,我们可以提供更多帮助。