Javascript MediaWiki/jQuery在IE8中交替使用表格行颜色 MediaWiki 1.21 jQuery 1.8.3(MediaWiki附带)

Javascript MediaWiki/jQuery在IE8中交替使用表格行颜色 MediaWiki 1.21 jQuery 1.8.3(MediaWiki附带),javascript,jquery,css,mediawiki,tablesorter,Javascript,Jquery,Css,Mediawiki,Tablesorter,我试图避免使用jQuery Tablesorter,因为['zebra']小部件不起作用。该解决方案应该在IE8浏览器以及更新的浏览器中工作 CSS:Mediawiki:Common.CSS /*--- Color scheme looks like an excel table :D --- */ .mytable { border-collapse: collapse; border: 1px solid #AAAAAA; } .mytable tbody tr td

我试图避免使用jQuery Tablesorter,因为['zebra']小部件不起作用。该解决方案应该在IE8浏览器以及更新的浏览器中工作

CSS:Mediawiki:Common.CSS

/*--- 
    Color scheme looks like an excel table :D
--- */
.mytable {
  border-collapse: collapse; 
  border: 1px solid #AAAAAA;
}

.mytable tbody tr td {
  border: 1px solid #AAAAAA; 
}

.mytable tbody tr th {
  border: 1px solid #AAAAAA;
}

.even {
  background-color: #DCE6F1;
}

.odd {
  background-color: #FFFFFF;
}

.head {
  background-color: #4F81BD;
  color: #FFFFFF;
}
JavaScript:Mediawiki:Common.js

$(document).ready(function() {
    $(".mytable tr:nth-child(even)").addClass('even');
    $(".mytable tr:nth-child(odd)").addClass('odd');

    $(".mytable tr").live('click', function() {
        If ($(this).hasClass('even')) {
            $(this).removeClass('even');
        }
        else if ($(this).hasClass('odd')) {
            $(this).removeClass('odd');
        }
        else {
        $(".tablesorter").trigger('update');
        }
    });
});
/*--------------------------------------------------|
| Alternate row styling for myTable class (IE)      |
|--------------------------------------------------*/

$( document ).ready( function() {

    function fixStripes() {

        /* setTimeout() adds a 1ms delay so Mediawiki's tablesorter 
        caching doesn't overwrite the class changes applied manually */
        setTimeout( $.proxy( function() {  

            $( '.mytable' ).find( 'tr' ).removeClass( 'even odd head' )
                .filter( ':even' ).addClass( 'even' ).end()
                .filter( ':odd' ).addClass( 'odd' ).end()
                .filter( ':has(th)' ).addClass( 'head' );

        }, this), 1);
    }

    /* On load */
    fixStripes();

    /* When the table header is clicked, reapply striping */
    $( '.mytable th' ).click( function() {
        fixStripes();
    } );

} );
错误总是一样的

“JavaScript分析错误:分析错误:缺失;第12行文件'Mediawiki:Common.js'中的before语句”

当我看到IE8使用其内置开发工具时,我真正看到的是jscript没有添加类。我在这个网站上尝试了另一个问题[1]中的几个解决方案,但没有一个能在IE8中使用。奇怪的是它在6月27日就开始工作了。。。我甚至对下面的问题发表了评论,感谢其中一位撰稿人

我怎样才能使这个css注入在IE8上工作

更新:

我修改了脚本,专门解决了chrome中的问题。我删除了一些css,这些css可能在更现代的浏览器中为脚本工作,现在我甚至无法在Chrome中使用以下内容

$(document).ready(function() {
    $(".mytable tr:nth-child(even)").addClass("even");
    $(".mytable tr:nth-child(odd)").addClass("odd");
    $(".mytable tr:first-child th").addClass("head");
});
下面是我在mediawiki中使用的一个表的示例,我在其中添加了mytable类。目标是在浏览器加载时设置表的样式,最好仅在jquery中,以便IE保持兼容,并在对表进行排序时重新分析样式(因此上面的单击功能)

我认为问题在于你的“elseif”。对于Javascript,您需要使用“elseif”。
另外,您需要关闭最后一个括号“else{”。

我能想到的唯一一件事是jQuery不喜欢带有大写字母的
If
。请尝试使用小写字母
If
,如下所示:

$(document).ready(function() {
    $(".mytable tr:nth-child(even)").addClass('even');
    $(".mytable tr:nth-child(odd)").addClass('odd');

    $(".mytable tr").live('click', function() {
        if ($(this).hasClass('even')) {
            $(this).removeClass('even');
        }
        else if ($(this).hasClass('odd')) {
            $(this).removeClass('odd');
        }
        else {
            $(".tablesorter").trigger('update');
        }
    });
});

你在使用哪个版本的jQuery?根据它的v1.8.3,我能想到的唯一一件事是jQuery不喜欢带大写字母的
If
。试试小写的
If
。哇,是这样,这有多疯狂?我一定是在某个时候做了,因为一些语法上的无稽之谈。把它贴出来作为答案,我会接受的。。.孩子,我觉得自己很笨,但谢谢你!通常我们似乎找不到的错误都是隐藏在小事情中的错误。就像这一个。:)不客气。你真的结束了最后一个else声明了吗?又是一个好消息,但仍然没有运气。我添加了一些细节,去掉了一些东西,试图找出到底是什么不起作用。我甚至无法让addClass函数在IE或Chrome中工作。我已经在问题的底部添加了我的最终解决方案。我完全抛弃了if,else if,else结构。
$(document).ready(function() {
    $(".mytable tr:nth-child(even)").addClass('even');
    $(".mytable tr:nth-child(odd)").addClass('odd');

    $(".mytable tr").live('click', function() {
        if ($(this).hasClass('even')) {
            $(this).removeClass('even');
        }
        else if ($(this).hasClass('odd')) {
            $(this).removeClass('odd');
        }
        else {
            $(".tablesorter").trigger('update');
        }
    });
});