顶级div不会改变背景颜色

时间:2013-08-02 15:39:16

标签: javascript jquery css

这是我想要做的: 当我输入input字段时,我希望顶级div.container-fluid更改颜色。现在我只能改变.xdiv区域而不是任何高于此区域的div。 这是我的代码:

    <script>
    $(function () {
        $('input[type="text"]').keypress(function () { 
            var $this = $(this),
                $div = $(this).parent();
            if ($this.val().length > 0) {
                $div.addClass("hasContent");
            } else {
                $div.removeClass("hasContent");
            }
        });
    });
    </script>
    <style>
    .container-fluid.hasContent { background-color: red }
        </style>    

<div class="container-fluid linear-Algebra" id="{{id}}">        
    <div class="row-fluid">
        <div class="span12">                        
            <div class="row-fluid">                             
                <div class="span8 grid-layout"> 
                    <legend>Grid Layout:</legend>
                    <div class="span4">
                        <div class="xdiv">
                            <label>x:</label>                                   
                        </div>
                    </div>
                    <div class="span4 offset1">
                        <div class="ydiv">  
                            <label>y:</label>
                        </div>
                    </div> 
                </div>                          
                <div class="span3">
                    <legend>Options:</legend>
                    <div class="btngroup">
                        <label class="checkbox" class="cbl">
                        </label>
                    </div>
                    <label>Actions:</label> 
                    <div class="btngroup">
                    </div>
                </div>  
            </div>                                  
        </div>              
    </div>                              
</div>      

3 个答案:

答案 0 :(得分:1)

DEMO

改变这个

$div = $(this).parent();

TO

$div = $(this).parents('.container-fluid');

parents('.container-fluid')找到课程container-fluid

的家长

答案 1 :(得分:0)

您可以使用jQuery.closest -

var containerDiv = $(this).closest('.container-fluid');

来自jquery最近的页面(http://goo.gl/tHBRx) -

  

描述:对于集合中的每个元素,获取第一个元素   通过测试元素本身并遍历来匹配选择器   通过DOM树中的祖先。

答案 2 :(得分:0)

改变这个:

$div = $(this).parent();

到此:

$div = $('.container-fluid')[0];

此外,您的输入元素在哪里?

相关问题