2013-01-03 52 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

相关问题