如何选择具有以数字开头的ID的元素?

5
<div id="634670717473476800" align="center" style="width: 100%; overflow-y: hidden;" class="wcustomhtml">

我有以上的HTML(自动生成的,无法更改),我试图在CSS中选择整个DIV。页面上有几个“wcustomhtml”,所以ID是我的唯一选择。我认为这很直接了当。
但是我无法选中它,也不知道为什么。
无论是#634670717473476800还是div#634670717473476800都无法选择该div。难道不能仅由数字组成的ID进行选择吗?
如果它是有效的HTML,那么什么可能出错呢?无论是Chrome的检查元素还是Firebug都无法让我在检查器中基于ID创建规则。

4
我认为身份证号码不能以数字开头。 - Andrew
可能是 doctype 的问题。 - Paulie_D
2个回答

18

您可以使用属性选择器并选择ID属性来访问它:

[id='634670717473476800'] {
  background-color: red;
}
<div id="634670717473476800" align="center" style="width: 100%; overflow-y: hidden;" class="wcustomhtml">div</div>

或通过转义数字:

#\36 34670717473476800 {
  background-color: green;
}
<div id="634670717473476800" align="center" style="width: 100%; overflow-y: hidden;" class="wcustomhtml">div</div>

引用自CSS字符转义序列
如果标识符的第一个字符是数字,则需要根据其Unicode代码点进行转义。例如,字符1的代码点为U+0031,因此您应将其转义为\000031或\31。基本上,要转义任何数字字符,只需在其前面加上\3并附加一个空格字符()。耶!Unicode!
HTML规范中的ID属性来看:
对于ID可以采取什么形式并没有其他限制;特别地,ID可能只包含数字,以数字开头,以下划线开头,只包含标点符号等。

1
如果你担心兼容性的话,属性选择器可以在IE7+上工作。 - h2ooooooo

-2

运行良好:http://jsfiddle.net/pnhr43wx/

<div id="634670717473476800"></div>
<script>
alert($('#634670717473476800').html());
</script>

你确定这是你的实际HTML吗?不要使用检查元素,而应该使用查看源代码。检查器也会显示生成的HTML,这可能不是你选择器运行时的实际HTML。

1
哇,我怎么会认为他在指JS/jQuery呢。抱歉。 - HaukurHaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接