如何在 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的主要内容,如果未能解决你的问题,请参考以下文章