2011-11-05 27 views
0

我有一個選擇列表,每個選項都在其ID中包含一個類別($ k [3])。當選項選項發生變化時獲取選項的選項

<select name="page_from_link" class="my_select_list" > 
       <OPTION VALUE="" >With:</OPTION>     
      <?php foreach($pages_created as $k) { 
       $i=0; ?>       
       <OPTION id="<?php $i."-".$k[3]; ?>" class="pages_created" VALUE="<?php echo $k[0]; ?>" ><?php echo $k[1]; ?></OPTION>   
      <?php } ?> 
    </select> 

我有依賴於先例選擇類別隱藏所有選項的另一個選擇列表: AS:
$ V){>
「>

我的jQuery腳本沒有按」你會怎麼做?

$(document).ready(function(){   

     $(".my_select_list").change(function(){ 
      var array = $(this).find('option:selected').attr('id').split('-'); 
      var cat = array[1]; 

      alert("cat"); 

      $("#cat_"+cat).show(); 
      $(".pages_created_option:not(#cat_"+cat).hide(); 

     return false;  
     }); 
    }); 
+0

我想你不能混用'this'和'> option'!請嘗試'$(this).find(「option」)。attr('id')。split(' - ');' – ComFreek

+0

Dosen't工作得到選擇的選項:s – Anon

回答

0

你可以使用一個php腳本或一個帶有編碼數據的js腳本,它保存innerHTML,並根據您在上一個選擇框中選擇的內容更改父對象(例如div)的innerHTML。

1

$(this > option).attr(... =>$(this).find('option:selected').attr (...

alert("cat"); =>alert(cat);

$("#cat_"+cat+")").show(); =>$("#cat_"+cat).show();

你應該考慮使用Firebug或Chrome內部開發工具(在F12)。

在一個側面說明,你可能想改用虛擬期權的OPTGROUP:

<select name="page_from_link" class="my_select_list" > 
    <OPTGROUP label="With:"> 
     <?php foreach($pages_created as $k) { 
      $i=0; ?>       
      <OPTION id="<?php $i."-".$k[3]; ?>" class="pages_created" VALUE="<?php echo $k[0]; ?>" ><?php echo $k[1]; ?></OPTION>   
     <?php } ?> 
    </OPTGROUP>  
</select> 
+0

感謝您的更正,但line var array = $(this).find('option')。attr('id')。split(' - ');似乎不工作,我不能得到與選擇(選項)的ID選項。有點奇怪。有沒有另一種方式? – Anon

+0

呵呵,真抱歉:使用'$(this).find('option:selected')'(或'$('option:selected',this)')!!!在一個側面說明你想使用類似於'

+0

感謝很多!但我的var貓是未定義的警報框架,雖然$ k [3]存在,當我print_r()數組$ page_created的foreeach。 – Anon

0

在頭部添加此爲JavaScript

function showsel() 
{if(document.getElementById('parentid').value=="id of the option that will triger the shild ") 
    {document.getElementById('shild id').style.display="inline";} 

else {document.getElementById('shild id').style.display="none";} 
} 

然後添加對shild

div id="shild id" style="display:none" 

和父母

div id="parent id" onchange"showsel()" 
相關問題