2014-02-07 26 views

回答

3

雖然plalx的回答可能工作,它的細膩,但它是完全有可能有這樣的:

<td class=""></td> 

...這將他的選擇相匹配。事實上,這很常見,尤其是如果你從單元上的一堂課開始,但隨後用removeClasstoggleClass將其刪除。

可以肯定的,你這樣做:

var countWithNoClasses = $("#mytable td").filter(function() { 
    return $.trim(this.className) === ""; 
}).length; 

Example | Source

+0

謝謝指出!看起來像我的問題比我想象的更聰明:D – Haradzieniec

+0

@Haradzieniec確保修剪className,以防萬一你有類似於'class =「」'的東西。 – plalx

+0

「這將匹配他的選擇器」應該是**不匹配**,但無論如何我已經更新了答案。 – plalx

1
$("#mytable td:not([class])").length; 

上面將捕獲元件而不一個class屬性和下面將捕捉未經class屬性或與class=""元件。

$('#mytable td:not([class]), #mytable td[class=""]').length; 

但是你仍然可能有那麼使用過濾功能的東西,如class=" "問題,如已經T.J.所示Crowder會更安全。

$("#mytable td").filter(function() { 
    //the replaces just trim the value 
    return this.className.replace(/^\s+/, '').replace(/\s+$/, '') === ""; 
}).length;