猿问

JQUERY 迭代数组

我的网站需要一些帮助。我正在尝试使用数组和两个不同的输入字段进行迭代。我的 html 文件包含如下内容:


<input name="comune" type="text" id="comune" list="comuni" />

<datalist id="comuni">

</datalist>

<input name="provincia" type="text" id="provincia" />

假设我的数组是这样的:



    var comProv = {

    'Pisa' : 'PI',

    'Firenze' = 'FI',

    'Roma' = 'RM'}


我想用数组的键填充数据列表,并且在选择特定选项时,我想在第二个输入字段中显示同一数组项目的值。


我尝试使用这段代码



    $('#comune').keyup(function(){

        var options = '';

        for(var i = 0; i < comProv.length; i++){

            options += '<option value="'+comProv[i]+'" />';

        }

        document.getElementById('comuni').innerHTML = options;

    });


我停下来,没有转到第二个主题,因为我很堆栈。有人可以帮忙吗?先感谢您。


largeQ
浏览 116回答 2
2回答

慕神8447489

它是一个对象,而不是一个数组。您可以使用 迭代它$.each()。$('#comune').keyup(function(){&nbsp; &nbsp; var options = '';&nbsp; &nbsp; $.each(comProv, function(key, value) {&nbsp; &nbsp; &nbsp; &nbsp; options += `<option value="${value}">${key}</option>`;&nbsp; &nbsp; });&nbsp; &nbsp; $('#comuni').html(options);});

临摹微笑

首先,它不是一个数组,它是一个对象。其次,如果您使用 jQuery 库,则需要使用“for...in”循环来循环对象或 $.each。最后但并非最不重要的一点是,您的对象中有拼写错误。最后,尝试一下此代码片段中的代码:$(function(){&nbsp; &nbsp; var comProv = {&nbsp; &nbsp; &nbsp; &nbsp; 'Pisa' : 'PI',&nbsp; &nbsp; &nbsp; &nbsp; 'Firenze':'FI',&nbsp; &nbsp; &nbsp; &nbsp; 'Roma': 'RM'&nbsp; &nbsp; }&nbsp; &nbsp; $('#comune').keyup(function(){&nbsp; &nbsp; &nbsp; &nbsp; var options = '';&nbsp; &nbsp; &nbsp; &nbsp; $.each(comProv, function(key, value) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; options += `<option value="${value}">${key}</option>`;&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $('#comuni').html(options);&nbsp; &nbsp; });})<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><input name="comune" type="text" id="comune" list="comuni" /><datalist id="comuni"></datalist><input name="provincia" type="text" id="provincia" />
随时随地看视频慕课网APP

相关分类

Html5
我要回答