2012-07-30 53 views
1

我搜索過的網頁和StackOverflow的一個解決方案排除元素的Cufón改造,因爲我的字體「BlueHighwayDType」這麼想的包含「'符號,所以我必須排除這個元素才能在ie7/8上看到它。 http://www.matteowebdesigner.com/test/yesimove/的Cufón不選擇排除的元素:沒有

<!--head--> 
<!--[if lt IE 9]> 
<script type="text/javascript" src="js/cufon-yui.min.js"></script> 
<script type="text/javascript" src="js/Blue_Highway_D_Type_400.font.js"></script> 
<script type="text/javascript" src="js/mind-ie.js"></script> 
<![endif]--> 

,我想替換的元素是p和我想排除元素span.small

<!--body--> 
<article> 
    <p>L'unico <strong>Personal Trainer</strong> <br/> 
    che ti segue ovunque</p> 
    <p>e ti permette di <strong>condividere</strong> 
    i tuoi progressi con i tuoi amici.</p> 
    <p>A soli <strong>9.<span class="small">99 &euro;</span></strong> al mese !</p> 
</article> 

於是,我的例子,我在網絡上找到我用選擇器':不是',但它沒有奏效。看看這個:

/*mind-ie.js*/ 
$(document).ready(function() { // Start Functions 
    Cufon.replace('#main #slogan section article p:not(.small)'); 
}); 

我不明白,因爲它不工作,我認爲選擇是正確的。

回答

1

即使在這種情況下,排除所有span元素。

Cufon.replace('#main #slogan section article p',{ignore:{span:true}}); 
0

small類實際上是由<span>元素顯示的,而不是由<p>元素顯示。

嘗試使用:has()選擇:

Cufon.replace("#slogan section article p:not(:has(.small))"); 

關於第二個想法,這會忽略包含匹配.small元素,這可能不是你想要的<p>元素。指定ignoreClass選項看起來像一個更好的主意:

Cufon.replace("#slogan section article p", { 
    ignoreClass: "small" 
}); 
+0

我試過也是這樣,但是它排除了所有第三段。然後我用這種方式嘗試了'Cufon.exclude('#main #slogan section article p .small');'但結果不會改變。 – 2012-07-30 14:22:56

+0

我認爲錯誤是選擇最後所有'p',而我必須排除的元素只是標籤'span'。 – 2012-07-31 12:35:55

+0

我認爲這是因爲Cufon轉換了匹配元素的全部內容,包括後代,但不能排除這些後代。 'ignoreClass'和'exclude()'不工作似乎指向那個... – 2012-07-31 12:42:13

相關問題