2013-08-16 33 views
-1

我想獲得一個類時添加一個div是否在某個父div內。Javascript如果(條件)然後addclass

<div class="parent1"> 
    <div class="child"> 
     Content 
    </div> 
</div> 

.parent1只存在於一個頁面上,而.child存在於其他人以及此人。

所以當.child在其他地方時,它的顏色是紅色的,但是當它在裏面.parent1我希望它的顏色是藍色的。

這是我正在使用的。

if ($('.child').parents('.parent1').length == 1) { 
    .addClass('.new-class'); 
} 

我對此沒有任何成就。誰能幫忙?

+0

如果你使用了Javascript控制檯,它會告訴你一個語法錯誤。 '$('。child')。addClass(...)' –

回答

3
$(".parent1 .child").addClass("new-class"); 

或者

$(".parent1>.child").addClass("new-class"); 

如果你想確保只有第一個孩子將與類填充:

<div class="parent1"> 
    <div class="child"> <!-- will have also "new-class" class --> 
     <div class="child"> <!-- will NOT have "new-class" class --> 
     </div> 
    </div> 
</div> 
+0

謝謝!你們都非常有幫助 – Sarwic

+0

如果答案對你有幫助 - 請檢查它是否正確 – yname

0

.addClass('.new-class');補充說,類東西。你忘了告訴jQuery什麼,並且導致語法錯誤(而你的瀏覽器控制檯會告訴你有關它是否打開)。我相信你想這樣的:

$('.parent1 .child').addClass('.new-class'); 
0

好吧,既然你沒有這個標籤像剛纔的JavaScript ...

HTML

<div class="parent1" id="parent"> 
    <div class="child" id="child"> 
     Content 
    </div> 
</div> 

CSS

.has-parent { 
    color: blue; 
} 

的Javascript

var child = document.getElementById('child'); 
var parent = document.getElementById('parent'); 
if (child.parentNode == parent) { 
    child.className += ' has-parent'; 
} 

DEMO

0

你也可以只用CSS做:

.child 
{ 
    color: red; 
} 
.parent .child 
{ 
    color: blue; 
} 

只要.parent .child規則來單.child規則後,它將覆蓋與藍色的顏色。沒有額外的工作來改變顏色。如果您因爲其他原因需要額外的課程,The User 518469的答案可能是最好的。