2011-12-18 65 views
3

我試圖計算與類名alt每個跨度元件的寬度,減去寬度,然後從該計算中減去另一個50像素:計算多發性元素寬度&減去它們的document.ready

<ul class="items"> 
    <li class="product1 alt"><a href=""><span>Televisions</span></a></li> 
    <li class="product2"><a href=""><span>MP3 Players</span></a></li> 
    <li class="product3 alt"><a href=""><span>Speakers</span></a></li> 
</ul> 

而且我的jQuery:

function moveIt() { 
    var diamond = $("#ir-content li.alt a span").width(); 
    $("#ir-content li.alt a span").css("left","-" + theMath - "50px"); 
    alert(theMath); 
} 

moveIt(); 
+0

演示:http://jsfiddle.net/rxw3B/ – 2011-12-18 02:01:57

回答

2

這是你想要做什麼?

function moveIt(){ 
    $("#ir-content li.alt a span").each(function(){ 
     $(this).css("left", ((0 - $(this).width()) - 50) + "px") 
    }); 
} 

$(document).ready(function(){ 
    moveIt(); 
}); 

http://jsfiddle.net/rxw3B/8/

注意,在這個答案,上面竟與OP的標記和CSS工作。然而,這可能是爲後代(使用position: relative)一個更好的例子:

http://jsfiddle.net/rxw3B/9/

+0

謝謝。這隻適用於只有一個「alt」類的情況。但是,如果有多個「alt」類的跨度,看起來它們都被加在一起了? – Yahreen 2011-12-18 02:29:10

+0

我真的不明白你想要完成什麼。您似乎想要計算「span」的所有寬度,然後將它們抵消到左邊。這是不對的?我的例子實際上可以在多個'li.alt span'中工作,但是你必須在jsffidle中查看它(並且沒有'span'具有'alt'類,btw)。 – 2011-12-18 02:32:42

+0

對,你的例子很好用,它計算所有跨度並將它們加在一起。我試圖獨立計算每個跨度的寬度。這是否更有意義? – Yahreen 2011-12-18 02:34:08

相關問題