1

我有两个 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 应该淡出,我通过 Ajax 更改该产品的状态。

我不知道如何获取被点击的特定 div 的类。很抱歉代码缩进不佳,我对 SO 编辑器不太熟悉。

编辑:问题仍未解决。

原因是那个页面的结构非常复杂。首先,我有 body,然后是一个 div,然后是几个 div,然后是一个带有 product-style-even 或 product-style-odd 类的 div。现在,如果我输入代码来选择父 div,那么它会在 body 之后选择 div。

4

3 回答 3

1
$('select').click(function(){
    var divClass=$(this).parent('div').attr('class');
});
于 2013-10-24T17:50:26.467 回答
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/

于 2013-10-24T17:48:11.530 回答
0

使用 jQuery:

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

在函数体中 changeStatus(productid, status)

于 2013-10-24T17:50:15.673 回答