2015-06-22 21 views
1

我試圖根據頁面的background-image更改字體的顏色。使用屬性以選擇器結尾添加類

我已經瀏覽了每篇關於此內容的帖子,但我無法弄清楚我的特定應用程序的正確語法。 。

我想寫說-dark.png「如果bodybackground-image結尾‘’之類的.dark添加到nav功能

這是我有:

function colorChange(){ 
    var b = $('body').css('background-image'); 

    if (b $==='-dark.png'){ 
     $("nav").addClass("dark"); 
    } 
} 

我很感謝任何幫助!

回答

2

$==運算符在JS中無效要查明一個字符串是否以特定字符集結尾,可以使用正則表達式:

function colorChange(){ 
    var b = $('body').css('background-image'); 
    if (b.test(/-dark.png$/i)) { 
     $("nav").addClass("dark"); 
    } 
} 

或者也substr()

function colorChange(){ 
    var b = $('body').css('background-image'); 
    var match = '-dark.png'; 
    if (b.length > match.length && b.substr(-match.length) == match) { 
     $("nav").addClass("dark"); 
    } 
} 
0

你需要使用正則表達式:

function colorChange(){ 
    var b = $('body').css('background-image'); 
    if(b.match(/-dark.png"\)$/)){ 
     $("nav").addClass("dark"); 
    } 
} 

$前加入"\)因爲這是此字符串(URL)的結局。

0

我不認爲你可以使用結束與作爲圖像URL將被包裹在url()這樣你就可以檢查indexOf()

function colorChange() { 
    var b = $('body').css('background-image'); 

    if (b.indexOf('-dark.png') > -1) { 
     $("nav").addClass("dark"); 
    } 
} 
0

你好馬克·普法夫, 這裏是根據我的理解你的答案你的問題,它可能會解決你的目的

 function colorChange(){ 
      var b = $('body').css('background-image'); 
      b = b.replace('url("','').replace('")',''); 
      b = b.substr(b.lastIndexOf('/') + 1); 
      if (b === 'dark.png'){ 
       $('nav').addClass("dark"); 
      } 
     } 

希望它會幫助你..

相關問題