jQuery选择包含“:”的自定义属性

时间:2014-12-08 12:58:29

标签: javascript jquery jquery-selectors

我正在尝试使用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']

我错过了什么?

2 个答案:

答案 0 :(得分:4)

:是选择器语法中的特殊字符,您需要将其转义:

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

(通常,这是row_id XML命名空间中的df属性,但是jQuery does not support XML DOMs or namespaced selectors因此可以简单地转义:

答案 1 :(得分:1)

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

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

查看静态演示 jsFiddle

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