jQuery部分选择器

19

我有许多表格,其中包含嵌套表格。我使用jQuery隐藏一些单元格,因为它们为空或内容不相关。

我使用jQuery隐藏所有TD,然后使用jQuery显示它们,例如,如果它们包含<P>

不幸的是,有些TD什么也没有,但仍需要显示。这些TD所给出的类是动态的,因此我无法为所有类编写代码(明智地),但它们都以“Node”结尾。

我想知道是否可以做到像这样的事情...

$(function() {
   $('TR .*Node').css('display','inline');
});

1
有点不相关,但是 $(function() {...}); 这一部分到底是什么意思?与仅编写内容有什么区别?这与作用域有关吗? - Eric
那么,是$(document).ready()的简写,还是$(window).load() - Eric
哪一个?$(document).ready() 还是 $(window).load() - Eric
3个回答

38

这将选择任何包含Node的元素,无论其类名中是否还有其他字符。

$('td[class*=Node]').css('display','inline');

这将选择任何类名以 Node 结尾的 td 元素。

$('td[class$=Node]').css('display','inline');

请记住,.show() 的作用与 .css('display','inline') 大致相同。


1
只是一个提示:最近在Firefox中使用$=版本时遇到了一些问题。如果你也有同样的问题,考虑稍微改变你的类设计。记住,你不仅限于每个元素一个类。 - krdluzni
2
这让我想起来,'td[class$=Node]' 不会匹配 <td class="123Node specialcell">,因为class文本不以 node 结尾。 - Eric

3
[attribute$="value"]选择器可用于匹配以特定值结尾的属性。请注意,使用show()而不是直接更改CSS将保留您要显示的元素的显示特性。如果您真的想强制它们显示为行内元素,可以使用display: inline将其恢复到CSS方法。
 $('td[class$="Node"]').show();

2
$(function() {
     $('td[class*=Node]').css('display','inline');
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接