2012-02-13 17 views
3

使用jQuery,如何查找應用了特定填充值的所有位置,然後將其從現有值中增加?jQuery:將填充增加+ x pxs

我看着選擇器,我找不到這樣的事情。

+1

不要通過jQuery或JavaScript使用css來做到這一點。 – ShankarSangoli 2012-02-13 22:37:13

+4

這將是非常低效的。你爲什麼想這樣做?有沒有更好的方法來縮小哪些元素應該受到影響? – 2012-02-13 22:37:37

+0

我需要這個以最大化瀏覽器之間的相似性。 Firefox(Gecko)和Chrome + Safari(Webkit)以不同的方式呈現某些差距。此外,Firefox和Safari使字體比Chrome更大膽,列表不斷更新。 ;-) – Phil 2012-02-14 13:27:56

回答

2

你真的想要搜索整個DOM嗎?這是相當低效:

$('*').each(function() { 

    var padTop = $(this).css('padding-top'); // get the padding 
    if (padTop > 0) 
     $(this).css('padding-top', padTop + x); // add x to it if more than 0 

}); 

好像each()優於filter(),因爲我們可以通過填充過濾和增加它在同一範圍內。強烈建議將'*'替換爲您可以使用的最具體的選擇器。

1

您可以使用filter函數檢查元素上的特定填充嗎?

可能是儘管一點點慢的語句...

1

你是不是想這僅適用於特定類型的元素(例如:僅div S)。在這種情況下,你可以做一些像@Jeroen提到的:

$('div').filter(function() { return this.style.paddingTop == "2px"; }) // use your specific padding value.