2011-05-14 65 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選擇器解析器中存在錯誤,或者由於該庫執行瀏覽器嗅探並且沒有在其他瀏覽器中運行相同的代碼。