1

我将<select id="country" ...>根据它们的价值过滤一些国家。我在 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>
4

3 回答 3

0

也许是这样的?

var a = [];

$("#country option").each(function() {
  if($(this).attr('value') > 5){
  a.push($(this).text());
  }
}); 
于 2012-04-09T17:58:12.693 回答
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() {
        var v = $(this).val();
        $("#country > option ").each(function(){ $(this).hide();});
        $("."+v).each(function(){ $(this).show();});
    });
});​

你可以在 js fiddle 上测试这个

编辑

这个 DEMO是一个更好的版本,带有以下 jQuery 代码:

$(function() {
    $("#region").change(function() {
        $("[class^=country_]").each(function(){ $(this).hide();});
        $("."+$(this).val()).each(function(){ $(this).show();});
    });
});​
于 2012-04-09T18:10:11.417 回答
-1

jquery 数组与 javascript array.eg 相同

thing = [];

或者

thing = new Array();

如果你将东西添加到你的数组中,例如

countries = ['UK','USA','etc'];

您可以使用 jquery .each 或 for 循环来循环它们。你也可以有一个数组数组,例如

thing = [['UK','Europe'],['USA','North America']];

然后遍历主数组并通过它们的索引访问其他元素。

thing[0][0] 将输出英国。

刚刚做了一个快速的谷歌,这可能会帮助你:

http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

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

于 2012-04-09T18:04:30.403 回答