【问题标题】:jQuery Partial SelectorsjQuery 部分选择器
【发布时间】:2009-09-02 16:00:12
【问题描述】:

我有许多表,其中有嵌套表。我使用 jQuery 隐藏了一些表格单元格,因为数字为空或内容无关。

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

很遗憾,有些 TD 不包含任何内容,但仍需要显示。给 TD 的类是动态的,所以我不能(明智地)为它们全部编码,但是它们都以“节点”结尾

我想知道是否可以做类似...

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

【问题讨论】:

  • 有点无关紧要,但$(function() {...}); 位到底是什么意思?那和只写内容有什么区别?和范围有关吗?
  • 所以是$(document).ready()$(window).load() 的简写?
  • 哪一个? $(document).ready(),还是$(window).load()?

标签: jquery jquery-selectors


【解决方案1】:

这将选择类名中带有Nodesomewhere的任何tds。

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

这将选择所有带有Node在其类名末尾的 tds。

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

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

【讨论】:

  • 请注意:我最近在使用 Firefox 中的 $= 版本时遇到了一些问题。如果你有同样的问题考虑设计你的类有点不同。请记住,您不限于每个元素一个类。
  • 这提醒了我,'td[class$=Node]'匹配 <td class="123Node specialcell">,因为课程文本不以 node 结尾
【解决方案2】:

[attribute$="value"] 选择器可让您匹配以特定值结尾的属性。请注意,使用 show() 而不是直接更改 CSS 将保留您正在显示的元素的显示特性。如果你真的想强制它们显示内联,你可以使用display: inline将其恢复为css方法

 $('td[class$="Node"]').show();

【讨论】:

    【解决方案3】:
    $(function() {
         $('td[class*=Node]').css('display','inline');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2011-06-20
      • 2012-06-26
      • 2011-09-11
      • 2013-06-20
      相关资源
      最近更新 更多