2014-07-24 70 views
0

標題可能是混亂的,反正,基本上讓我們說這是我的HTML看起來像:去,不包含自己的類

<span></span> 
<span></span> 
<div class='box'> 
<span></span> 
<span></span> 
<span class='doNotCountThisOne'> 
</div> 
<span></span> 
<span></span> 

所以這將返回2基本上我想檢查所有的<span> s在一個特定的類(在這種情況下框),不包含自己的類。 (如doNotCountThisOne跨度即)

我想是這樣的:

var cAmounts = 0; 
var test = $(".box span:not([class]), span[class='']"); 
test.each(function() { 
    cAmounts++; 
    console.log(cAmounts); 
} 

但似乎沒有一個類中添加整個頁面上的所有<span>秒。 在此先感謝。

+2

這是因爲第二個規則',跨度[CLASS =「」]'所有的跨度不匹配在整個頁面的類。去掉它。 – Cristy

+0

@Cristy是的,謝謝! :) – prk

+2

你確定它統計所有這些元素?即使沒有上下文選擇器,span [class ='']'也不可能匹配其中的任何一個,因爲它們都沒有空的'class'屬性 - 它們要麼具有非空的'class'屬性,要麼* no *屬性。 – BoltClock

回答

2

嘗試,

var test = $(".box span:not([class]), .box span[class='']"); 

您的代碼不會給預期的結果,因爲,在多重選擇的第二選擇沒有任何背景。以便它可以搜索整個DOM。

你的代碼可以被縮短,

var cAmounts = $(".box span:not([class]").length; 
+0

工作,謝謝。 :) – prk

1

$(".box span:not([class]), span[class='']");,你爲什麼要添加span[class='']? 它會在結果中添加一個空類的結果。 刪除此,你會得到你想要的東西:)

$(".box span:not([class])");