2009-09-02 67 views
19

我有許多表,它們都有嵌套表。我使用jQuery來隱藏一些表格單元格,因爲數字是空的或內容無關緊要。jQuery部分選擇器

我使用jQuery來隱藏所有的TD,然後jQuery來顯示它們,例如,如果它們包含<P>

不幸的是,一些TD並沒有包含任何內容,但仍然需要顯示。運輸署給出的類是動態的,所以我將無法爲他們所有的(明智地)的代碼,但是他們做了一切結束「節點」

我在想,如果有可能做這樣的事情......

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

有點unreleated使其恢復到CSS的方法,但究竟是什麼的'$(函數(){... });'有點意思?那和只寫內容有什麼區別?它與範圍有關嗎? – Eric 2009-09-02 16:04:56

+0

它會在加載時執行 – 2009-09-02 16:07:07

+0

所以'$(document).ready()'或$(window).load()'的縮寫是簡單的嗎? – Eric 2009-09-02 16:10:32

回答

38

這將選擇與Node在他們的類名稱中的任何tds。

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

這將在他們的類名末尾選擇具有Node任何TDS。

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

記住,.show()大致做同樣的事情.css('display','inline');

+1

只是一個說明:我最近在Firefox中的$ =版本遇到了一些麻煩。考慮到設計你的課程有點不同,如果你有同樣的問題。請記住,你不限於每個元素的一個類。 – krdluzni 2009-09-02 16:15:29

+2

這讓我想起''td [class $ = Node]''將會* not *匹配''td class =「123Node specialcell」>',因爲類文本不會以'node'結尾 – Eric 2009-09-02 16:20:21

+0

+1對於_show ()_評論。 – NVRAM 2009-09-02 17:11:26

3

[attribute$="value"]選擇會讓你匹配與特定的值結尾的屬性。請注意,使用show()而不是直接更改CSS將保留您正在顯示的元素的顯示特性。如果你真的想強迫他們顯示在線,你可以用display: inline

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