2014-04-22 4 views
0

option 태그에 selected 속성을 추가하려고합니다 (Wordpress 사이트에서). 선택해야하는 값은 PHP 배열에 저장됩니다. selected 속성이 <option>..에 추가되지 않는 이유는 무엇입니까?jQuery : 값이 배열 인 경우 옵션에서 'selected'태그를 설정하십시오.

내-script.js

jQuery("#location option").each(function($){ 

var arr = [<?php echo '"'.implode('","', $php_array).'"' ?>]; 
// for testing also hardcoded array: doesn't work either 
// var arr = ["1", "2"]; 

    if(jQuery.inArray($(this).val(),arr) != -1){ 
    $(this).attr('selected', 'selected'); 
    }; 

}); 

.js 스크립트는 제대로 enqueqed된다.

HTML 출력

<select name="location[]" multiple="multiple" id="location" class="postform" style="display: none;"> 
      <option value="-1">Select a location</option> 
      <option class="level-0" value="1">Location A</option> 
      <option class="level-0" value="2">Location B</option> 
      <option class="level-0" value="3">Location C</option> 

     </select> 
+1

팁 : 자바 스크립트 소스에 PHP 배열 주입하는'json_encode'를 사용하여'var에 도착를 =; '. –

답변

4

당신이 each 핸들러에 아무것도 통과 할 수 없기 때문에 문제입니다. 그에서 $를 제거하고 코드가 잘 작동 :

var arr = ["1", "2"]; 
jQuery("#location option").each(function() { 
    if (jQuery.inArray($(this).val(), arr) != -1) { 
     $(this).prop('selected', true); 
    }; 
}); 

Example Fiddle

0

를 당신이 jQuery를 루프에 오타가 있다고 생각

jQuery("#location option").each(function($){ 

var arr = [<?php echo '"'.implode('","', $php_array).'"' ?>]; 
// for testing also hardcoded array: doesn't work either 
// var arr = ["1", "2"]; 

    if(jQuery.inArray($(this).val(),arr) != -1){ 
    $(this).attr('selected', 'selected'); 
    }; 

}); 

기능 ($)이 기능과 같은 매개 변수없이해야한다()

작업 코드 :

,264,

내 jsFiddle : http://jsfiddle.net/Cs329/

관련 문제