如何在 IE 中选择没有 colspan 的 th

Posted

技术标签:

【中文标题】如何在 IE 中选择没有 colspan 的 th【英文标题】:how to select th with no colspan in IE 【发布时间】:2011-03-28 01:08:49 【问题描述】:

我正在使用此代码来获取所有没有 colspan 的表头。它只适用于 Firefox 和 chrome,但不适用于 IE。 IE的等效代码是什么?谢谢。

$tableHeaders = $("thead th:not([colspan])", table);

【问题讨论】:

【参考方案1】:

这与一个已知错误有关:http://bugs.jquery.com/ticket/7234

这是我想出的跨浏览器解决方法:

兼容IE7、IE8、IE9、FF4、Chrome、Opera11:

.filter(":not([colspan]),[colspan='1']")

但要小心,这也会选择 td/th 个单元格,其中 colspan 属性手动设置为 1,例如 ... [这不会附加到我的代码中,因为如果设置为值 1,我会删除 colspan 属性]

所以我想这就是你要找的东西:

$tableHeaders = $("thead > th", table).filter(":not([colspan]),[colspan='1']");

请注意,我在 th 选择器中添加了一个 '>' 以避免选择您可能在里面的其他 th(表头内的表,为什么不呢?)。

【讨论】:

【参考方案2】:

试试:

$tableHeaders = $("#table_id th:not(:has(colspan))");

更多:

http://api.jquery.com/has-selector/

【讨论】:

据我了解:has() 不能以这种方式工作。正如文档所说:“选择包含至少一个与指定选择器匹配的元素的元素。”所以不是属性,只是子元素。 不,它没有用。我试过 $tableHeaders = $("thead th:not(:has[colspan])", table);而是再次仅适用于 IE。

以上是关于如何在 IE 中选择没有 colspan 的 th的主要内容,如果未能解决你的问题,请参考以下文章

rowspan && colspan

如何用rowspan和colspan解析表

如何在表格中选择包括 colspans 的列?

IE 中单元格的 colspan 属性在某些情况下会影响 TABLE 元素的自动布局

Colspan 强制设置相等的列宽

html表单元素的colspan和rowspan