2013-10-24 61 views
1

我有兩個div其展示產品的細節內容在他們裏面,像這樣:如何在單擊該div內的選擇選項時獲取div的類?

<div class="product-style-odd"> 
     <select> 

      <option value="active" onClick="changeStatus(<?php echo $productid;?>,0)">Activate</option> 
      <option value="inactive" onClick="changeStatus(<?php echo $productid;?>,1)">Deactivate</option> 

     </select> 
    </div> 

    <div class="product-style-even"> 
     <select> 

      <option value="active" onClick="changeStatus(<?php echo $productid;?>,0)">Activate</option> 
      <option value="inactive" onClick="changeStatus(<?php echo $productid;?>",1)>Deactivate</option> 

     </select> 
    </div> 

    <script> 
     function changeStatus(productid, status){ 
      //Now what I want to reference and hide that div in which changeStatus function was invoked 
     } 
    </script> 

的上面的代碼現在一點解釋。這些奇數和偶數樣式div都位於循環內部,因此它們將根據循環中的迭代次數重複。 現在我想要實現的是,當用戶從選擇菜單中點擊非活動選項時,那個特定的div應該是fadeOut,並且我通過Ajax更改該產品的狀態。

我不知道如何獲得被點擊的特定div的類。 對於糟糕的代碼縮進感到遺憾,我對SO編輯器不是很熟悉。編號: 問題仍未解決。

原因是該頁面的結構非常複雜。首先,我有身體,然後是一個div,然後是幾個div,然後來一個具有類產品風格,甚至是產品風格的div。現在,如果我把代碼選擇父div,然後選擇正文後的div。

+0

一個對象可以具有多個類....這些都是由空間隔開的。所以你需要處理這個 – Fallenreaper

回答

1

這樣的事情呢?

$("select").change(function() { 
    var selectVal; 
    $("select option:selected").each(function() { 
     selectVal = $(this).val(); 
    }); 
    if (selectVal == 'inactive') { 
     var selectParentDiv = $(this).parents('div'); 
     selectParentDiv.fadeOut(); 
     console.log(selectParentDiv.attr('class')); 
    } 
}); 

實施例:http://jsfiddle.net/rjngr/3/

+0

,它把對象的所有類都拉爲1個大字符串。也許在[空間]上標記它,以便有一個類的列表? – Fallenreaper

+0

它應該只返回$(this)的div類,這是被點擊的div。 –

+0

因爲div可以有多個類....它會返回所有類的字符串。 – Fallenreaper

0

使用jQuery:

$(this).parents('div:first').hide(); 
在功能changeStatus(產品ID,狀態)體

1
$('select').click(function(){ 
    var divClass=$(this).parent('div').attr('class'); 
});