Jquery 如何转义包含

Jquery 如何转义包含,jquery,jquery-selectors,escaping,Jquery,Jquery Selectors,Escaping,我试图在jQuery中避开这个德语id CSS选择器注意: 我怎么能做到这一点呢?即使你能做到,你也不应该。从中可以看到,id属性不能包含以下字符: 此属性的值不能包含空格、制表符等 以及: 使用ASCII字母和数字以外的字符“.'”、“-”和“.”可能会导致兼容性问题,因为HTML 4中不允许使用这些字符。虽然HTML5中取消了这一限制,但为了兼容,ID应该以字母开头 委员会确认: 该值不能包含任何空格字符 以及: ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[

我试图在jQuery中避开这个德语id CSS选择器注意:

我怎么能做到这一点呢?

即使你能做到,你也不应该。从中可以看到,id属性不能包含以下字符:

此属性的值不能包含空格、制表符等

以及:

使用ASCII字母和数字以外的字符“.'”、“-”和“.”可能会导致兼容性问题,因为HTML 4中不允许使用这些字符。虽然HTML5中取消了这一限制,但为了兼容,ID应该以字母开头

委员会确认:

该值不能包含任何空格字符

以及:

ID和名称标记必须以字母[a-Za-z]开头,后面可以是任意数量的字母、数字[0-9]、连字符、下划线、冒号和句点


只需使用双反斜杠:

$('[id="fa_form_row_\\<b\\>Wer ist der teilnehmer/in (Mehrfachantworten möglich)?\\</b\\> des Kurses:"]').toggleClass('inactive');

为什么这是一个id?无效的契约,退后一步,想想你为什么需要这样一个id。@Lambda Ninja:服务器端软件坏得可怕是我能想到的一个原因。完全同意。如果不是为了HTML5的宽容,这个id值是非常不切实际和错误的。MDN不是HTML规范。@BoltClock我知道,我本来打算回来解决这个问题,但是工作中断了…CSS.escape在这里没有任何用处。给定的选择器是有效的CSS,不需要任何反斜杠转义。它在jQuery中不起作用的原因是jQuery将其解释为选择器以外的东西。我不知道asker是否成功地实现了这一点,但在我的测试中,反斜杠转义不会改变jQuery对字符串的解释方式。
$('[id="fa_form_row_\\<b\\>Wer ist der teilnehmer/in (Mehrfachantworten möglich)?\\</b\\> des Kurses:"]').toggleClass('inactive');
var selector = CSS.escape('[id="fa_form_row_<b>Wer ist der teilnehmer/in (Mehrfachantworten möglich)?</b> des Kurses:"]');
$(selector).toggleClass('inactive');