2012-04-09 3 views
1

일부 값을 값에 따라 <select id="country" ...>에서 필터링 할 것입니다. 나는 grep과 jQuery에서 필터를 시도했지만 성공하지 못했다. 한 요소에 대해서만 잘 작동합니다. jQuery에서 올바른 배열을 만드는 방법을 모르겠습니다.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> 
+0

어떤 값을 기준으로합니까? –

+0

나는 당신이 그것을 복잡하게 시도했다고 생각한다. 값을 클래스로 표시하고 클래스 이름으로 선택하십시오. 아래 예제를 참조하십시오. – Neysor

답변

-1

jquery 배열은 javascript 배열과 동일합니다.

thing = []; 

또는

thing = new Array(); 

당신은 예를 들어, 배열에 일을 추가하는 경우

jquery .each 또는 for 루프를 사용하여 루프를 만들 수 있습니다. 예를 들어 배열의 배열을 가질 수도 있습니다.

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

주 배열을 반복하고 인덱스를 통해 다른 요소에 액세스합니다.

건 [0] [0]은 영국을 출력합니다.

는 그냥 빨리 구글을했고이 당신을 도울 수 있습니다

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

그것은 당신이

0

이 같은 아마 뭔가?

var a = []; 

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

친애하는 Miro, 저는 jQuery에서 최신입니다. 제발 좀 더 자세하게 설명해 주시겠습니까. 어떻게 <옵션 값 = "1"> 인도네시아 <옵션 값 = "2"> 태국 <옵션 값 = "3"> 싱가포르 <옵션 값에 <옵션 값 = "1"> 아시아을 할당 = "4"> 말레이시아 예를 들면. –

+0

내 목록은 샘플처럼 주문이 <옵션 값 = "15">처럼 보이는하지 않은 Bahams \t <옵션 값 = "73"> 그리스 \t <옵션 값 = "86"> 인도 \t < 옵션 값 = "92"> 이탈리아 \t <옵션 값 = "35"> 캐나다 \t <옵션 값 = "115"> 프랑스 \t <옵션 값 = "194"> 미국 \t <옵션 값 = "181"> 터키 –

0

난 당신이 단지의 부속 선택을 할 생각 배열 할 수있는 다른 것들의 일부를 보여줍니다 선택하신 지역을 기준으로 jQuery로

<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> 

:

$(function() { 
    $("#region").change(function() { 
     var v = $(this).val(); 
     $("#country > option ").each(function(){ $(this).hide();}); 
     $("."+v).each(function(){ $(this).show();}); 
    }); 
});​ 

할 수 있습니다 test this on js fiddle

편집

This DEMO는 다음과 같은 jQuery를 코드와 더 나은 버전 :

대신 하나를 시도
관련 문제