2013-01-03 84 views
0

我希望jQuery將某些多選列表選項的顏色更改爲紅色(如果選擇了某個條件)。這裏是我的代碼:在同一頁面上使用jQuery並在同一頁面上包含相似的顏色選項

$.each(subjects, function(key, subject) 
     { 
      if (select.find('option[value=\"' + encodeURIComponent(subject) + '\"]').length === 0 && subject!="") 
      { 
        $('<option>', { 
        value: subject, 
        text: subject 
        }).appendTo(select); 

       if (colored==true) 
        { 
         //Change color of options' text 
         $("option[value='"+subject+"']").css('color', 'red'); 
        } 
      } 
     }); 

這段代碼的問題是,jQuery的顏色爲紅色,不僅在其上工作目前多選擇的選項,這些選項的名稱是在變量定義選擇。但是jQuery也會在頁面上的所有其他多選中爲這些選項着色,如果它們包含它們的話。

如何編輯此代碼以使jQuery僅着色包含在當前多選中的選項,該名稱又是在中選擇的變量中定義的?

例如,對於

(select.find("option[value='"+subject+"']").css('color', 'red'); 

沒有工作更換

$("option[value='"+subject+"']").css('color', 'red'); 

。什麼是正確的代碼? 預先感謝您。

+0

哪裏'select'變量來自反正來了嗎? –

+0

上面給出的代碼在函數中。這裏的功能如何開始: 變更表=函數(數據,選擇列表的,有色的,的emptyList) \t \t \t { \t \t \t變種受試者= data.split( ''); \t \t \t var select = $('#'+ selectList); [...] – user1881815

+1

您的解決方案看起來像應該工作。還有其他一些事情正在發生。你可以建立一個工作[小提琴](http://jsfiddle.net),所以我們可以看到它失敗? – Blazemonger

回答

0

你試過了嗎?

$("#" + selectList + " option[value='"+ encodeURIComponent(subject)+"']").css('color', 'red'); 

LMM - 編輯,包括編碼

+0

@Blazemonger這是一個非常明顯的錯誤。現在修復它。 –

+0

它的工作,謝謝。 :) – user1881815

+0

@Blazemonger我對此有另一個問題:我的代碼不會繪製包含空格的紅色選項。我該如何解決這個問題? (我不能用@標籤到達Lee Meador ...) – user1881815

相關問題