Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表格的替代颜色css不适用 函数Foo(id){ if(document.getElementByTagName){ var$rows=$('#'+id+'tr:not(:hidden)'); 对于(变量i=0;i_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 表格的替代颜色css不适用 函数Foo(id){ if(document.getElementByTagName){ var$rows=$('#'+id+'tr:not(:hidden)'); 对于(变量i=0;i

Javascript 表格的替代颜色css不适用 函数Foo(id){ if(document.getElementByTagName){ var$rows=$('#'+id+'tr:not(:hidden)'); 对于(变量i=0;i,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是我的函数,我可以在我的代码中使用它,但不能在这个小提琴上使用,同样,如果我能够应用表1中的Foo方法的话。它不会显示在选项卡2上(反之亦然)。我的问题是如何在位于不同选项卡中的两个表上同时应用Foo() 看看这个例子。非常感谢您的帮助。理想解决方案:CSS 删除所有Javascript并用以下内容替换CSS怎么样: function Foo(id) { if (document.getElementByTagName) { var $rows =

这是我的函数,我可以在我的代码中使用它,但不能在这个小提琴上使用,同样,如果我能够应用表1中的
Foo方法的话。它不会显示在选项卡2上(反之亦然)。我的问题是如何在位于不同选项卡中的两个表上同时应用
Foo()


看看这个例子。非常感谢您的帮助。

理想解决方案:CSS

删除所有Javascript并用以下内容替换CSS怎么样:

 function Foo(id) {
         if (document.getElementByTagName) {
             var $rows = $('#' + id + ' tr : not(:hidden)');
             for (var i = 0; i < $rows.length; i++) {
                 if (i % 2 == 0)

                 $rows[i].className = "even";
                 else $rows[i].className = "odd";
             }
         }

     }

有关第n个子项的功能的更多信息,请访问。请注意,这个解决方案在IE8中不起作用,但我个人认为这是可以接受的。毕竟,这只是一种表面上的帮助,使用这种旧浏览器的用户可以不使用它就使用你的网站,也可以升级他们的浏览器

修复您的Javascript

顺便说一下,您的Javascript解决方案也可以工作,但它有一些错误。首先,
if(document.getElementByTagName)
只检查函数
getElementByTagName
是否存在,而我认为您计划执行它以获取表或行

这样效果更好:

tr:nth-child(even) {
    background-color : gray;
}
tr:nth-child(odd) {
    background-color : white;
}
  • 如果要动态隐藏行,则会遇到另一个问题。它会弄乱你的颜色。每次重新应用这些类时,都必须调用Foo。这也意味着Foo还需要删除以前分配的类,否则您将同时拥有这两个类。这可能需要一些工作。:)

请注意,CSS解决方案不会存在所有这些问题。隐藏行不被考虑在内。例如,看看美国队长藏在哪里。

理想解决方案:CSS

删除所有Javascript并用以下内容替换CSS怎么样:

 function Foo(id) {
         if (document.getElementByTagName) {
             var $rows = $('#' + id + ' tr : not(:hidden)');
             for (var i = 0; i < $rows.length; i++) {
                 if (i % 2 == 0)

                 $rows[i].className = "even";
                 else $rows[i].className = "odd";
             }
         }

     }

有关第n个子项的功能的更多信息,请访问。请注意,这个解决方案在IE8中不起作用,但我个人认为这是可以接受的。毕竟,这只是一种表面上的帮助,使用这种旧浏览器的用户可以不使用它就使用你的网站,也可以升级他们的浏览器

修复您的Javascript

顺便说一下,您的Javascript解决方案也可以工作,但它有一些错误。首先,
if(document.getElementByTagName)
只检查函数
getElementByTagName
是否存在,而我认为您计划执行它以获取表或行

这样效果更好:

tr:nth-child(even) {
    background-color : gray;
}
tr:nth-child(odd) {
    background-color : white;
}
  • 如果要动态隐藏行,则会遇到另一个问题。它会弄乱你的颜色。每次重新应用这些类时,都必须调用Foo。这也意味着Foo还需要删除以前分配的类,否则您将同时拥有这两个类。这可能需要一些工作。:)

请注意,CSS解决方案不会存在所有这些问题。隐藏行不被考虑在内。例如,看看美国队长隐藏在哪里。

除了CSS解决方案之外,我还讨论了Javascript中的问题,尽管最终结论是CSS确实是这里最好的方法。谢谢,先生,不幸的是,我必须在IE8中使用它。但是,先生,如果我有问题,我稍后会给你发消息。谢谢。这个css工作的是什么版本的IE(如果有)?这里还有一个关于IE8支持的问题。它建议使用Selectivizr,这是一个Javascript解决方案,另一个答案显示了一个可能也很有用的技巧。也许它对你有用:除了CSS解决方案之外,我还讨论了你Javascript中的问题,尽管最后的结论是CSS确实是这里最好的方法。谢谢,先生,不幸的是,我必须在IE8中使用它。但是,先生,如果我有问题,我稍后会给你发消息。谢谢。这个css工作的是什么版本的IE(如果有)?这里还有一个关于IE8支持的问题。它建议使用Selectivizr,这是一个Javascript解决方案,另一个答案显示了一个可能也很有用的技巧。也许这对你有用: