gpt4 book ai didi

jquery - 使用 jQuery 为多选的某些选项着色的错误

转载 作者:行者123 更新时间:2023-11-28 18:31:26 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery 在填充多选列表的某些选项时将它们涂成红色。这是我的代码:

$.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- 第二个 encodeURIComponent 无法处理包含单引号的选项。这是控制台中的错误示例:

Uncaught Error: Syntax error, unrecognized expression:

value='est%20le%20type%20d'action%20de']

我尝试修改发生这种情况的行,使其与第一个 if 子句中的行类似,但它没有改变任何东西。

2- 我的 jQuery 代码不会为包含空格的选项着色。

如何解决这两个问题?提前谢谢你。

编辑:变量 selectList 包含我的多选名称。

最佳答案

不要在您的选项中使用空格或引号。(又称“不要那样做”),而是考虑使用键(数字或简单文本)作为您的值选项。当您处理输入时,您可以将这些值映射到您真正需要的值。这样做还可以在某些时候保存您的 HTML,防止您不小心放入关闭属性的字符,甚至是整个标签。

反转你的引号。JavaScript 可以使用 ''"" 作为字符串。如果您不能绕过单引号,并且知道您不会在选项值中使用双引号,请替换为:

" option[value='"+ encodeURIComponent(subject) +"']"  

有了这个:

' option[value="'+ encodeURIComponent(subject) +'"]'

在将值放入 HTML 时不要对值进行 URI 编码 相反,请将值保持原样,或者如果需要,尝试对它们进行 HTML 编码。如果您需要对它们进行 URI 编码(例如 GET 参数),则在表单提交时对它们进行 URI 编码,就像您准备将数据发送到其他地方一样。

关于jquery - 使用 jQuery 为多选的某些选项着色的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14159035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com