jQuery 选择<tr>,自定义属性包含“:”

jQuery select <tr> with custom attribute that contains ":"

本文关键字:包含 自定义属性 选择 tr jQuery      更新时间:2023-09-26

我正在尝试使用 jQuery 选择行并根据条件将它们的背景颜色设置为红色或绿色,但我似乎无法让 jQuery 选择它们。我只能通过自定义属性中的唯一 INT 编号来识别它们。

HTML 看起来像这样

<tr df:row_id="0" ..........

我尝试了 N 种代码变体,例如

$("[df:row_id='"+theId+"']").css({ 'background-color' : 'green'});

$("tr[df:row_id='"+theId+"']").css({ 'background-color' : 'green'});

以及使用简单引号或双引号的变体,但我似乎无法正确处理。我不断得到

Uncaught Error: Syntax error, unrecognized expression: tr df:row_id='0'
Uncaught Error: Syntax error, unrecognized expression: [df:row_id='0']

我错过了什么?

:

选择器语法中的一个特殊字符,则需要对其进行转义:

$("tr[df'':row_id='"+theId+"']").css({ 'background-color' : 'green'});

(通常,这是 df XML 命名空间中的row_id属性,但 jQuery 不支持 XML DOM 或命名空间选择器,因此简单地转义:是可以接受的。

您应该使用转义字符标识符''来存档它,

$("tr[df'':row_id='"+theId+"']").css({ 'background-color' : 'green'});

查看静态演示 jsFiddle

$("tr[df'':row_id='1']").css({ 'background-color' : 'green'});