removeClass更改未反映在页面上

时间:2011-07-03 00:36:37

标签: jquery css

我正在尝试从特定的DIV中即时删除CSS类。我有以下jQuery代码:

<script type="text/javascript">
    $(document).ready(function() {
        $('.intro').click(function() {
            $('.row_2').removeClass('.last_row');
        });
    });
</script>

..使用以下HTML

<div class="row_1 intro">Intro Row 1</div>
<div class"row_1 detail">Detail Row 1</div>
<div class="row_2 intro last_row">Intro Row 2</div>
<div class="row_2 detail last_row">Detail Row 2</div>

从概念上讲,当用户点击任意intro个DIV时,它应该从last_row DIV中删除row_2类。但是,它似乎不起作用,因为一旦用户点击last_row DIV,就不会从row_2 DIV中删除应用于intro的渲染页面上的CSS样式。< / p>

这是jQuery代码的问题,还是我还需要做其他事情,以便渲染页面上的相关DIV能够动态更新以响应last_row类被删除?

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

使用$('.row_2').removeClass('last_row');代替$('.row_2').removeClass('.last_row');,它应该有效。

传递给.removeClass的参数应该只是类的名称,不带点。

答案 1 :(得分:2)

removeClass将以空格分隔的类名列表作为参数,因此没有点:

$(document).ready(function() {
  $('.intro').click(function() {
     $('.row_2').removeClass('last_row');
  });
});

See here了解详情。

“dot”-syntax是选择元素的选择器机制。

答案 2 :(得分:0)

就我而言,

$("#amt").removeClass('hide');

没有任何区别;该领域仍然隐藏着。

我必须在id前加上“body #form”引用,才能使其正常工作。

$("body #form #amt").removeClass('hide');

工作,使该领域可见。我理解这是因为,页面有多个引用“#amt”,并且第一个引用始终被解决,导致removeClass无效。必须具体,如果有更多的引用相同的字段。希望这会有所帮助。