【问题标题】:jquery getJSON based on selected option基于所选选项的jquery getJSON
【发布时间】:2015-04-22 11:07:55
【问题描述】:

我想根据所选选项进行 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>

【问题讨论】:

  • 不太明白你的意思。您的意思是您的 json.w1 具有 json.w1.dutchjson.w1.greekjson.w1.english 等属性,并且您想根据用户选择获取值吗?如果你想要,那么你可以使用var query = json.w1[str];

标签: jquery json getjson


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    嘿,您的示例中似乎有很多不需要的代码。在没有看到你的结果 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 的示例,我们可能会提供更多帮助。

    【讨论】:

    • 如果我在 HTML 代码中选择西班牙语,我想打印 Casa。这是我的 JSON 文件的一个简短示例: { "w1":{"English":"House", "German":"Haus", "Spanish":"Casa"} }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2020-08-23
    • 2023-03-24
    • 2013-10-23
    • 1970-01-01
    • 2011-11-06
    相关资源
    最近更新 更多