如何在jQuery中从不同的值生成数组

如何在jQuery中从不同的值生成数组,jquery,arrays,elements,Jquery,Arrays,Elements,我将根据它们的值筛选一些国家。我在jQuery中尝试过grep和filter,但没有成功。就一个元素而言,它工作正常。 我不知道如何在jQuery中生成正确的数组 jQuery.noConflict(); function change_country(seldd) { var look_for_id=''; var opt_id=[]; jQuery('#countries').html(""); jQuery("#countries").append("<op

我将根据它们的值筛选一些国家。我在jQuery中尝试过grep和filter,但没有成功。就一个元素而言,它工作正常。 我不知道如何在jQuery中生成正确的数组

 jQuery.noConflict();
 function change_country(seldd) {     
    var look_for_id=''; var opt_id=[];
 jQuery('#countries').html("");
 jQuery("#countries").append("<option value='0'>-Country-</option>");
    if(seldd.value=='0') { look_for_id='N'; }   
    if(seldd.value=='1'){ look_for_id='Y';  opt_id=jQuery.filter($("#country option").val(["1,   2, 3, 4"])); }  
    if(seldd.value=='2'){ look_for_id='Y';  opt_id=jQuery.grep(['5', '6', '7', '8']); }  
    if(look_for_id=='Y') {
 jQuery("#country option[value='"+opt_id+"']").each(function() {
 jQuery("#countries").append("<option   value='"+jQuery(this).val()+"'>"+jQuery(this).text()+"</option>");
  });
 } else {
 jQuery("#country option").each(function() {
 jQuery("#countries").append("<option  value='"+jQuery(this).val()+"'>"+jQuery(this).text()+"</option>");
    });
  }  
 }

 <div>      
<select id="region" id="srv_type" onchange="change_fruit(this)" >
  <option value="0" selected="selected">Регион</option>
  <option value="1">Asia</option>
  <option value="2">Europe</option>
</select>  </div> 

<div style="display:none;" >   
<select id="country" name="country" class="inputbox">
   <option value="" selected="selected">Страна</option>
   <option value="1" >Indonesia</option>
   <option value="2">Thailand</option>
   <option value="3">Singapore</option>
   <option value="4">Malaysia</option>
   <option value="5">Greece</option>
   <option value="6">Italy</option>
   <option value="7">Monaco</option>
   <option value="8">Spain</option>
</select>
</div>
<select name="countries" id="countries">
   <option value="0">-Country-</option>
</select>

也许是这样的

var a = [];

$("#country option").each(function() {
  if($(this).attr('value') > 5){
  a.push($(this).text());
  }
}); 

jquery数组与javascript数组相同

thing = [];

如果您向数组中添加了内容,例如

countries = ['UK','USA','etc'];
您可以使用jquery.each或for循环遍历它们。您还可以有一个数组,例如

thing = [['UK','Europe'],['USA','North America']];
然后循环遍历主数组,并通过其索引访问其他元素

东西[0][0]将输出到英国

只是快速搜索了一下,这可能会帮助您:


它显示了您可以使用阵列执行的其他一些操作

我想您只需要根据您选择的区域选择一个子国家。试试这个:

<select id="region" name="region">
  <option value="0" selected="selected">Регион</option>
  <option value="country_as">Asia</option>
  <option value="country_eu">Europe</option>
</select>
<select id="country" name="country">
   <option value="" selected="selected">Страна</option>
   <option value="1" class="country_as" >Indonesia</option>
   <option value="2" class="country_as">Thailand</option>
   <option value="3" class="country_as">Singapore</option>
   <option value="4" class="country_as">Malaysia</option>
   <option value="5" class="country_eu">Greece</option>
   <option value="6" class="country_eu">Italy</option>
   <option value="7" class="country_eu">Monaco</option>
   <option value="8" class="country_eu">Spain</option>
</select>
你可以

编辑

是具有以下jQuery代码的更好版本:

$(function() {
    $("#region").change(function() {
        $("[class^=country_]").each(function(){ $(this).hide();});
        $("."+$(this).val()).each(function(){ $(this).show();});
    });
});​

亲爱的Miro,我是jQuery的最新成员,您能更详细地向我解释一下吗。如何将亚洲分配给印度尼西亚、泰国、新加坡、马来西亚,例如,我的列表没有像样本中那样排序,看起来像巴哈马、希腊、印度、意大利、加拿大、法国、美国、土耳其,我想你已经试过了。只需使用类标记您的值,并根据类名选择它们。请参见下面的示例
$(function() {
    $("#region").change(function() {
        var v = $(this).val();
        $("#country > option ").each(function(){ $(this).hide();});
        $("."+v).each(function(){ $(this).show();});
    });
});​
$(function() {
    $("#region").change(function() {
        $("[class^=country_]").each(function(){ $(this).hide();});
        $("."+$(this).val()).each(function(){ $(this).show();});
    });
});​