2012-09-07 46 views
2

我有一個jQuery函數,它爲頁面中的許多元素(包括p和p.latest_news)重新調整字體大小和行高度。 的功能的工作原理與所有其它元件預期,除了與p.latest_newsjQuery .css不適用於p和p.class

的字體大小和行高被施加到p.latest_news等於所述p無級(即$('p').css({...

jQuery的。 1.7.1

CODE

$('p.article_news').css({ 
      'font-size' : Math.max(11,(.9 * newFontSize)), 
      'line-height' : Math.max(13,(1.1 * newFontSize))+'px' 
      }); 
    $('p').css({ 
      'font-size' : Math.max(14,newFontSize), 
      'line-height' : Math.max(21,(1.7 * newFontSize))+'px' 
      }); 

如果我只用

$('p.article_news').css({ 
      'font-size' : Math.max(11,(.9 * newFontSize)), 
      'line-height' : Math.max(13,(1.1 * newFontSize))+'px' 
      }); 

p.article_news按預期字體大小和行高改變

這是怎麼回事? 我該如何影響每個班,班級和無班級?

謝謝

回答

4

您設置article_news字體大小,然後用你的第二個選擇再次改變它。

你需要的是:

$('p.article_news').css({ 
     'font-size' : Math.max(11,(.9 * newFontSize)), 
     'line-height' : Math.max(13,(1.1 * newFontSize))+'px' 
     }); 
$('p:not(.article_news)').css({ 
     'font-size' : Math.max(14,newFontSize), 
     'line-height' : Math.max(21,(1.7 * newFontSize))+'px' 
     }); 

的:不()選擇基本上選擇不具有類.active_news所有的p節點。

+0

THANK YOU檢查速度更快!問題來總結知識...什麼是我有多個p.class的情況下的語法? (例如$('p:not(.one_class),p:not(.another_class)')或$('p:not(.one_class)','p:not(.another_class)')或者可以告訴我? – IberoMedia

+0

我相信逗號分隔值應該可以工作。:not(.classone,.classtwo)等 以下是api文檔的鏈接:not()http://api.jquery.com/not-selector/ – Mark

0

因爲所有p.article_news都是p,所以您覆蓋了在p.article_news中添加的樣式p。您可以先設置p,然後設置p.article_news,或者您可以使用p:not(.article_news)而不是p

1

只需翻轉你的功能。首先使用p選擇器的功能,然後使用p.article_news選擇器的功能。

您的p選擇器函數正在覆蓋p.article_news選擇器函數。

1

我喜歡Mark的解決方案。

但是,如果兩個函數一起調用,您可以將它們翻轉並使它們工作。

$('p').css({ 
      'font-size' : Math.max(14,newFontSize), 
      'line-height' : Math.max(21,(1.7 * newFontSize))+'px' 
      }); 
$('p.article_news').css({ 
      'font-size' : Math.max(11,(.9 * newFontSize)), 
      'line-height' : Math.max(13,(1.1 * newFontSize))+'px' 
      }); 

可能比:not