为什么我不能使用JQuery style()函数设置此CSS设置?

时间:2015-05-04 14:28:44

标签: javascript jquery html css css3

我对这个JQuery脚本有一些问题(在使用 Jquery-1.9.1.min.js 的项目上):

$(document).ready(function () {
    $("thead.opening").click(function () {

        var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
        alert("INTO second function, chrome: " + is_chrome);

        $(this).next().css('width', '10000000em');
        $(this).next().css('display', 'table-row-group');

        //$(this).next().css('display', is_chrome ? 'table-row-group' : 'table-row-group');

        //alert($(this).next().css('display'));
    });
});

此脚本只是将CSS样式设置为与单击的 thead 元素相关的 tbody 元素,并以这种方式执行:

$(this).next().css('display', 'table-row-group');

它有效,但我必须为此CSS属性设置!important ,但如果我这样做,它就无法工作:

$(this).next().css('display', 'table-row-group !important');

所以在线搜索我在StackOverflow上发现了这篇文章:How to apply !important using .css()?

因此,在上一个脚本中,我尝试使用:

$(this).next().style('width', '10000000em', 'important');
$(this).next().style('display', 'table-row-group', 'important');

代替:

$(this).next().css('width', '10000000em');
$(this).next().css('display', 'table-row-group');

但问题是我得到了错误的结果:

<tbody class="expanded" style="display: block; width: 1e+7em;">

所以似乎宽度属性设置正确但显示属性没有(实际上它是在上设置而不是在表行组

为什么呢?我错过了什么?我该如何解决这个问题?

TNX

1 个答案:

答案 0 :(得分:4)

我建议创建一个类如下:

CSS

$('#element').addClass('forceDisplay');

然后使用jQuery的addClass()方法应用!important声明。

{{1}}