如何在div中单击select选项获取div的类?

时间:2013-10-24 17:46:44

标签: javascript jquery html css

我有两个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都在循环内部,因此它们会根据循环中的迭代次数重复出现。 现在我想要实现的是当用户点击select菜单中的inactive选项时,那个特定的div应该是fadeOut,我通过Ajax改变了该产品的状态。

我不知道如何获得被点击的特定div的类。 很遗憾代码的缩进很差,我对SO编辑器并不熟悉。

编辑: 问题仍未解决。

原因是该页面的结构非常复杂。首先,我有身体,然后是一个div,然后是几个div,然后是一个div类产品风格 - 偶数或产品风格 - 奇数。现在如果我把代码选择父div,那么它选择body后面的div。

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

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

答案 2 :(得分:0)

使用jQuery:

$(this).parents('div:first').hide();

在函数changeStatus(productid,status)