0

这是我尝试做的事情:当我输入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>      
4

3 回答 3

1

演示

改变这个

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

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

parents('.container-fluid')找到有班级的父母container-fluid

于 2013-08-02T15:51:09.497 回答
0

您可以使用 jQuery.closest -

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

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

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

于 2013-08-02T15:43:34.250 回答
0

改变这个:

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

对此:

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

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

于 2013-08-02T15:48:13.580 回答