2014-10-01 19 views
3

我有一個簡單的HTML結構與div元素。我想要找到每個家長div的子女div的價值總和,但只有父母至少有三個子女時。父div有超過三個子div的總和div

這是我試過了,但它從每一個DIV得到的總和:

var sum = 0; 
 
$("div > div > div").each(function() { 
 
    sum += parseInt($(this).text(), 10); 
 
}); 
 

 
console.log(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div> 
 
     <!-- want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
    <div> 
 
    <!-- don't want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
    <div> 
 
     <!-- want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
</div>

所以在上面的例子中,我打印了答案8

回答

5

你可以檢查每個div,如果它的父母有3個以上的孩子:

var sum = 0; 
 
$("div > div > div").each(function() { 
 
    if($(this).parent().children('div').length >3){ 
 
    sum += parseInt($(this).text(), 10); 
 
    } 
 
}); 
 

 
console.log(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div> 
 
     <!-- want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
    <div> 
 
    <!-- don't want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
    <div> 
 
     <!-- want to calculate this ---> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
     <div>1</div> 
 
    </div> 
 
</div>

+0

我要等待7分多鐘之前,我可以接受你的答案,我無法給予好評兩種:S – user2019037 2014-10-01 18:19:56

+0

你可以用'.children('div')'來表達更具體的內容 - 那樣的話,其他標籤就不會被計算在內。否則,我即將發佈這個確切的答案。 – 2014-10-01 18:21:23

+0

@SurrealDreams,是的好點,謝謝:) – Banana 2014-10-01 18:22:35

0

得到母體的div類,姑且稱之爲.parent現在:

var sum = 0; 
$(".parent").each(function() { 
    if($(this).children('div').length>3){ 
     $(this).children('div').each(function(){ 
      sum += parseInt($(this).text(), 10); 
     }); 
    } 
}); 

console.log(sum);