Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法为附加的元素添加.empty()_Javascript_Jquery - Fatal编程技术网

Javascript 无法为附加的元素添加.empty()

Javascript 无法为附加的元素添加.empty(),javascript,jquery,Javascript,Jquery,在上面的州=$‘州’中,上面的代码可以很好地填充选定州的城市。但问题是,当一个新的州被选中时,以前被填满的城市也在那里。即使我尝试过。每次更改都清空。您不会清空临时数组。因此,每次调用此函数时,都会将项目附加到临时数组中 您只需在代码中添加以下行: state.on('change', function(){ city.empty(); $.getJSON("pincodes.JSON", function(pincodes){ var key = state.v

在上面的州=$‘州’中,上面的代码可以很好地填充选定州的城市。但问题是,当一个新的州被选中时,以前被填满的城市也在那里。即使我尝试过。每次更改都清空。

您不会清空临时数组。因此,每次调用此函数时,都会将项目附加到临时数组中

您只需在代码中添加以下行:

state.on('change', function(){
    city.empty();
    $.getJSON("pincodes.JSON", function(pincodes){
        var key = state.val(); 
        for (var j= 0; j < pincodes['address'].length; j++) {
            if (pincodes['address'][j]['circlename'] == key) {
                temp.push(pincodes['address'][j]['regionname']);
            }
        } 
        cities = $.unique(temp);
        for (var k = 0; k < cities.length; k++) {   
            city.append('<option>' + cities[k] + '</option>');
        }  
    });
});
城市呢=$.uniquetemp;,这行不通。 根据文档,此功能

对DOM元素数组进行就地排序,并删除重复项。请注意,这只适用于DOM元素的数组,而不适用于字符串或数字

所以,这不是一个正确的用法。如果从JSON中获取非唯一值,则需要使用另一种方法来获取不同的值。在这个主题上有一个很好的例子。

您不需要清空临时数组。因此,每次调用此函数时,都会将项目附加到临时数组中

您只需在代码中添加以下行:

state.on('change', function(){
    city.empty();
    $.getJSON("pincodes.JSON", function(pincodes){
        var key = state.val(); 
        for (var j= 0; j < pincodes['address'].length; j++) {
            if (pincodes['address'][j]['circlename'] == key) {
                temp.push(pincodes['address'][j]['regionname']);
            }
        } 
        cities = $.unique(temp);
        for (var k = 0; k < cities.length; k++) {   
            city.append('<option>' + cities[k] + '</option>');
        }  
    });
});
城市呢=$.uniquetemp;,这行不通。 根据文档,此功能

对DOM元素数组进行就地排序,并删除重复项。请注意,这只适用于DOM元素的数组,而不适用于字符串或数字


所以,这不是一个正确的用法。如果从JSON中获取非唯一值,则需要使用另一种方法来获取不同的值。在这个主题上有一个很好的例子。

是否清空临时数组?在这个函数的开头,类似temp=[]的东西。temp数组获取json中的所有城市,我只需要清空我的平均值更改,然后追加。因此,用户更改状态,您可以循环使用pincode并填充temp数组。下次,当这个处理程序启动时,临时数组不是空的。我认为@YeldarKurmangaliyev是正确的。尝试在函数开头清空temp。@YeldarKurmangaliyev,谢谢,这很有效。但是你能解释一下为什么cities=$.uniquetemp;不删除重复值?是否清空临时数组?在这个函数的开头,类似temp=[]的东西。temp数组获取json中的所有城市,我只需要清空我的平均值更改,然后追加。因此,用户更改状态,您可以循环使用pincode并填充temp数组。下次,当这个处理程序启动时,临时数组不是空的。我认为@YeldarKurmangaliyev是正确的。尝试在函数开头清空temp。@YeldarKurmangaliyev,谢谢,这很有效。但是你能解释一下为什么cities=$.uniquetemp;不删除重复值吗?谢谢,cities=$.uniquetemp;在我的案例中,uniques值适用。我从临时文件中的json获取数据,这不是唯一的。我在城市里得到的价值观是独一无二的。唯一的问题是,当多次触发更改时,它无法工作。谢谢你的帮助,真的很管用。谢谢,cities=$.uniquetemp;在我的案例中,uniques值适用。我从临时文件中的json获取数据,这不是唯一的。我在城市里得到的价值观是独一无二的。唯一的问题是,当多次触发更改时,它无法工作。谢谢你的帮助,真的很有效。