基于所选选项的jquery getJSON

基于所选选项的jquery getJSON,jquery,json,getjson,Jquery,Json,Getjson,我想基于所选选项进行getJSON搜索。例如:如果我在选择选项菜单中选择意大利语,我希望getJSON查询看起来像json.w1.意大利语 我知道这个代码不正确,这就是我请求帮助的原因 代码如下: <select name="language"> <option selected="selected" value="english">English</option> <option value="german">German<

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

我知道这个代码不正确,这就是我请求帮助的原因

代码如下:

<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>

您的代码比需要的要复杂得多-要获得select的所选值,您可以简单地调用val。然后,您可以使用括号表示法将键作为字符串从对象检索项。试试这个:

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

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


如果您发布一个json返回内容的示例,我们可能会提供更多帮助。

没有真正理解您的意思。您的意思是您的json.w1具有类似json.w1.dutch、json.w1.希腊文、json.w1.english等属性,并且希望根据用户选择获取值吗?如果需要,那么可以使用var query=json.w1[str];。如果我在HTML代码中选择西班牙语,我想打印Casa。下面是我的JSON文件的一个简短示例:{w1:{English:House,German:Haus,Spanish:Casa}}
$( "select" )
    .change(function () {
    var lang = $( "select option:selected" ).val();
    $( "#language" ).text( lang );
    $.getJSON( "lang.json", function( json ) {
        $( "#results" ).text( json.w1.lang );
    });
});