通常情况下,我只会在任何html类或id属性中使用带和 - 和_的字母数字,但我想知道是否有可能在属性中间包含#,例如:
<div id = "my_css_id_#f4ed11">
我不会通过CSS定位这个,这纯粹是为了javasrcipt。
注意 我之所以这么说是因为我想这样做,但由于某些相关的PHP代码由某人完成,它会使这部分成为项目的一部分更容易。
由于
答案 0 :(得分:4)
当然可以。它根据HTML5有效。
您只需要escape the character in a selector (for use in CSS or JavaScript)。对于#
字符,它很简单;你可以使用\#
。
这是一个工具,它将告诉您如何转义CSS / JS选择器中的任何字符:http://mothereff.in/css-escapes#0foo%23bar从该页面:
<script>
// document.getElementById or similar
document.getElementById('foo#bar');
// document.querySelector or similar
$('#foo\\#bar');
</script>
P.S。关于ID或class
值中的奇怪字符的主题:http://mathiasbynens.be/notes/html5-id-class
答案 1 :(得分:1)
我不建议这样做。使用ID#...#...通过CSS或甚至是Javascript来访问元素是很困难的,因为#在编程/编码中如此过载。
听起来你想存储一些数据。您知道W3C标准允许以data-
开头的属性吗?
例如,您可以保留与元素关联的数据:
<p data-name="John Jones">I like alliteration.</p>
本文详细介绍了数据属性。 http://ejohn.org/blog/html-5-data-attributes/
答案 2 :(得分:0)
最好进行反复试验,看看是否有效。但是,就伪选择器而言,#符号应该没有问题。要选择,您将使用:
$("#my_css_id_#f4ed11")