2013-10-22 32 views
0

我想知道是否可以在這段代碼中添加某種Nth Child?你可以給JS添加第N個孩子嗎?

$(function() { 
    var count = $(".parent a").length; 
    $(".parent div").width(function(){ 
     return ($(".parent").width()/count)-5; 
    }).css("margin-right","5px"); 
    }); 

我想什麼是有最後一個div忽略margin-right

這可能嗎?

回答

1

一般來說,你可以使用jQuery選擇像:last:last-child:last-of-type,並考慮你想要一個元素:not

但是,您在這裏遇到的問題更多的是與何時以及如何進行寬度計算和應用CSS有關。

我會打破這種分解成幾個步驟,首先要做的寬度計算:

var count = $(".parent a").length; 

$(".parent div").width(function(){ 
    return ($(".parent").width()/count)-5; 
}); 

下一頁適用右邊距爲所有,但最後格:

$(".parent div:not(:last)").css("margin-right","5px"); 

這幾乎把我們帶到那裏,最後一點只是填補遺留的小小空缺:

$(".parent div:last").width(function() { 
    return $(".parent div:last").width() + 5; 
}); 

而這應該做你想做的。你可以在這裏看到一個工作示例 - http://jsfiddle.net/jUU86/3/。我可能會去用一個變量來替換頁邊距大小,只是這樣你就不必更換多個位置。

你可以閱讀更多關於這裏使用的選擇:

+0

添加此停止整個腳本的工作做的HTML和CSS:/ – SaturnsEye

+0

定義'停止從working',這slighlty修改後的示例按我的預期工作 - http://jsfiddle.net/jUU86/,向我們展示您的HTML可能會讓事情變得更輕鬆。 – Lloyd

+0

很難解釋。這裏是我的代碼與你的JS [鏈接](http://jsfiddle.net/jUU86/1/),這是當JS工作[鏈接](http://jsfiddle.net/jUU86/2/)時的樣子。 – SaturnsEye

0

您可以添加它在奇數/偶數:計數%2

+0

很高興有一種方法,但是這對我毫無意義哈哈,我只是在中間水平 – SaturnsEye

1

:last-of-type似乎是你所需要的。我比:last:last-child更喜歡這個,因爲它更可能是最後一個類型(一個div)而不是最後一個孩子。

$(function() { 
    var count = $(".parent a").length; 
    $(".parent div").width(function() { 
     return ($(".parent").width()/count) - 5; 
    }); 
    $(".parent div:not(:last-of-type)").css("margin-right", "5px"); 
}); 
+0

與勞埃德的回答類似,這會停止工作中的腳本 – SaturnsEye

+0

@Adsy請參閱我的編輯。那樣有用嗎?另外,嘗試更具體。什麼不行? –

+0

該腳本仍然有效,但邊緣只是從我的所有div中刪除,而不僅僅是最後一個 – SaturnsEye