如何使用哈希值作为select器?
假设下面的html:
<div id='test#1'>test1</div> <div id='test#2'>test2</div>
现在,下面是不行的,为什么?
CSS ….
#test#1{color: red;}
jQuery的….
$('#test#2').css('color','blue');
要使用任何元字符,如!“#$%&'()* +,。/ :; <=>?@ [] ^`{|}〜作为名称的文字部分,它必须是逃避与反斜杠:
css的方式:
#test\#1{ color: red; }
jQuery的方式:
$('#test\\#2').css('color','blue');
演示
build议:
你不应该使用#在你的ID 查看更多的细节
ID和NAME标记必须以字母([A-Za-z])开始,后面跟随任意数量的字母,数字([0-9]),连字符(“ – ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。
所以,你可能也想知道id =“test.1”可以使用,因此你也应该如上所述逃避angular色。
您可以使用反斜杠\
转义#
#test\#1{ color: red; }
与jQuery,你可以做同样的方式,但你需要逃避\
另一个反斜杠:
要使用任何元字符(如!“#$%&'()* +,。/ :; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须用两个反斜杠逃脱:\\
$('#test\\#2').css('color','blue');
小提琴演示
但是,根据HTML 4规范 , #
不是有效的唯一标识符:
ID和NAME标记必须以字母([A-Za-z])开始,后面跟随任意数量的字母,数字([0-9]),连字符(“ – ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。
和HTML 5规范 :
该值必须在元素的主子树中的所有ID中唯一,并且必须至less包含一个字符。 该值不能包含任何空格字符。
所以你应该删除你的ID中的第二个#