2011-05-14 37 views
0

我只是想知道,为什么我的jQuery事件woudlnt在FireFox被triggerd在使用数字值在我的ID标签IM作为网页ID的数字不能正常工作!

($"#2").live .....

<div id='2' .....

香港专业教育学院注意到,事件的arent triggerd这样的,只在FireFox中。欢迎任何解释。

+0

因为数字对于“id”或“class”属性不是有效的第一个字符。 – 2011-05-14 21:20:10

+0

出于好奇,这个问题回答你的满意吗?还是你有进一步的问题? – 2012-01-30 13:03:56

回答

2

无效HTML4的ID以数字开头。

您必须以字母开头。

虽然允许在数字ID HTML5

+1

更多信息:http://www.w3.org/TR/html40/types.html#type-name – 2011-05-14 21:21:29

+0

@Jon:感谢您的链接。 :) – user113716 2011-05-14 21:22:55

0

html元素的ID值必须以字母([A-Za-z])开头,后面可以跟随任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。

4

ID和名称标记必须以字母([A-Za-z])开头,后面跟着任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。 Citation: html 4 reference at the W3

因此,您的id无效,因为它以数字字符开头。

HTML 5然而id仅需要具有:

id属性指定其元素的唯一标识符(ID)。该值在元素的主子树中的所有ID中必须是唯一的,并且必须至少包含一个字符。该值不能包含任何空格字符。

+0

我第二个这个职位。 idName-1,idName-2等。可能是approrpirate的命名方案。然后我会使用一个正则表达式来解析这样一个字符串。例如: //设置正则表达式 var re = /(^ \ w + - )(\ d +)$/i; (this).attr('id')。match(re)[1], id = $(this).attr('id')。match(012)重新)[2]; – matchew 2011-05-14 21:54:40

0

这真的取决于($"#2")正在做什么。例如,如果它将#2传递给querySelector调用,则该调用将失败,因为这不是有效的CSS选择器。

我怀疑你正在使用某种类似的库,它可能在其他浏览器中工作,因为它们的CSS选择器解析器中存在错误,或者由于该库执行浏览器嗅探并且没有在其他浏览器中运行相同的代码。