1

<select id="country" ...>いくつかの国をその価値に応じてフィルタリングします。jQueryでgrepとfilterを試しましたが、成功しませんでした。1つの要素だけで問題なく動作しています。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フィドルでこれをテストすることができます

編集

このデモは、次の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配列と同じです。eg

thing = [];

また

thing = new Array();

配列に何かを追加する場合、例えば

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

jquery.eachまたはforループを使用してループできます。配列の配列を持つこともできます。

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

次に、メイン配列をループし、インデックスを介して他の要素にアクセスします。

things[0][0]はUKを出力します。

簡単なグーグルをしただけで、これはあなたを助けるかもしれません:

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

配列でできる他のいくつかのことを示しています

于 2012-04-09T18:04:30.403 に答える