使用jQuery为多个选择的某些选项着色的错误
我试图在填充多重选择列表时,使用jQuery将它们的一些选项涂成红色。这是我的密码:使用jQuery为多个选择的某些选项着色的错误,jquery,css,colors,multi-select,Jquery,Css,Colors,Multi Select,我试图在填充多重选择列表时,使用jQuery将它们的一些选项涂成红色。这是我的密码: $.each(subjects, function(key, subject) { if (select.find('option[value=\"' + encodeURIComponent(subject) + '\"]').length === 0 && subject!="") { //Ajouter la no
$.each(subjects, function(key, subject)
{
if (select.find('option[value=\"' + encodeURIComponent(subject) + '\"]').length === 0 && subject!="")
{
//Ajouter la nouvelle catégorie dans la liste
$('<option>', {
value: subject,
text: subject
}).appendTo(select);
if (colored==true)
{
//Change color of options' text
//$("option[value='"+subject+"']").css('color', 'red');
$("#" + selectList + " option[value='"+ encodeURIComponent(subject) +"']").css('color', 'red');
}
}
});
我目前对此代码有两个问题:
1-第二个组件无法处理包含简单引号的选项。以下是console中的错误示例:
未捕获错误:语法错误,无法识别的表达式:
value='est%20le%20type%20d'操作%20de']
我试图修改行,使其与第一个if子句中的行相似,但没有改变任何内容
2-我的jQuery代码不为包含空格的选项着色
我如何解决这两个问题?
先谢谢你
编辑:变量selectList包含我的multiselect的名称。不要在选项中使用空格或引号。AKA -不要这样做,而是考虑使用一个关键的数字或简单文本的价值为您的选择。处理输入时,可以将这些值映射到您真正需要的值。这样做还可以在某个时候保存HTML,防止您意外地插入关闭属性的字符,甚至整个标记
颠倒你的报价。JavaScript可以对字符串使用或。如果您无法避免使用单引号,并且知道在选项值中不会使用双引号,请替换此选项:
" option[value='"+ encodeURIComponent(subject) +"']"
为此:
' option[value="'+ encodeURIComponent(subject) +'"]'
在将值放入HTML时,不要对其进行URI编码,而是让值保持原样,或者如果需要,尝试对其进行HTML编码。如果您需要对它们进行URI编码,例如GET参数,那么就在表单提交时对它们进行URI编码,就像您准备将数据发送到其他地方一样。不要在选项中使用空格或引号。AKA -不要这样做,而是考虑使用一个关键的数字或简单文本的价值为您的选择。处理输入时,可以将这些值映射到您真正需要的值。这样做还可以在某个时候保存HTML,防止您意外地插入关闭属性的字符,甚至整个标记
颠倒你的报价。JavaScript可以对字符串使用或。如果您无法避免使用单引号,并且知道在选项值中不会使用双引号,请替换此选项:
" option[value='"+ encodeURIComponent(subject) +"']"
为此:
' option[value="'+ encodeURIComponent(subject) +'"]'
在将值放入HTML时,不要对其进行URI编码,而是让值保持原样,或者如果需要,尝试对其进行HTML编码。如果您需要对它们进行URI编码,例如GET参数,那么就在表单提交时对它们进行URI编码,就像您准备将数据发送到其他地方一样。请给出完整的示例。HTML是什么样子的?请给出一个完整的例子。HTML是什么样子的?谢谢你的建议它与$+selectList+'选项[value='+subject+']'配合得很好;谢谢你的建议它与$+selectList+'选项[value='+subject+']'配合得很好;