2011-11-01 83 views
1

我在我的應用程序中使用ID爲financial[terms]的div,但jquery似乎無法以此爲目標。jquery找不到div

這是一個語義無效的ID?

+2

我從來沒有見過帶方括號'[]'的HTML ID。更何況方括號是jQuery選擇器語法的一部分。 –

回答

2

The HTML 4.01 spec states該ID令牌必須以開始字母([A-Za-z]),後面可以跟着任意數量的字母,數字([0-9]),連字符( - ),在分數(_),冒號(:)和句點(。)。

要準確地回答你的問題,你的id是在HTML 4.01

According to this article, in HTML 5無效但是,你id看起來可能是有效的。

編輯:

應當注意的是,jQuery的本身仍可能有一些麻煩與有效 HTML 4.01 id,這樣的某些方面作爲時期和冒號。

0

這是一個語義無效的ID嗎?

我會說是,使用更像financial-terms的東西。

2

根據w3.org

ID和名稱標記必須以字母開頭([A-ZA-Z])和之後可以是任何數量的字母,數字([0-9]) ,連字符(「 - 」),下劃線(「_」),冒號(「:」)和句點(「。」)。

所以,不,你的id在語義上是無效的。

+0

這很有趣。我不確定id中的冒號或句點是如何被JQuery解釋的,因爲它們是JQuery選擇器語法的一部分。 – arviman

0

雖然它在ID中是無效的(但在名稱屬性中很好),但如果你願意,也許可以避開它。您需要escape special characters,因爲方括號在jQuery選擇器中有其自己的含義。

0

這是絕對無效的。 一個id可以以字母開頭,後跟字母(A-Za-z),數字(0-9),連字符(「 - 」)和下劃線(「_」)。

+0

...和冒號和句點......你必須從w3schools獲得你的信息。見[http://www.w3.org/TR/html401/types.html#type-name](http://www.w3.org/TR/html401/types.html#type-name) – Sparky

+0

我知道冒號和句點在ID中是有效的字符,但我不確定如何在這個上下文中使用它們,因爲它們是JQuery選擇器語法的一部分。 – arviman

+0

這個問題的答案,「這是一個語義上無效的ID嗎?」,很簡單。 – Sparky

0

ID已從W3.org命名規則:

  • 第一個字符:[A-Za-z]
  • 其餘部分的字符:[A-Za-z],[0-9],"-","_",":" or "."

Link

+0

另一個完美的例子,W3School通過提供不完整的信息而短缺。 [見W3規格](http://www.w3.org/TR/html401/types.html#type-name)。然後閱讀[this](http://w3fools.com)。 – Sparky

+2

@ Sparky672謝謝,我以前不知道。恕我直言,他們確實有最明確的方式來描述HTML/CSS規範,太糟糕了信息本身似乎缺乏。我的眼睛已經被打開了! – Lycha

+0

真遺憾,真正的W3網站並不像W3schools網站那麼容易使用。但是,是的,儘管這些日子W3schools比以前好多了,但我仍然避免這樣做,所以我不必去記住哪些部分是正確的,哪些不正確。 – nnnnnn

0

如果您無法更改ID,仍然可以在jQuery中使用document.getElementById或使用$("[id='financial[terms]'")(性能較差)。

+0

jQuery撇開,它不是有效的HTML,除非他使用HTML 5。 – Sparky

+0

TBH,有效性無關緊要。當然這很有效,但如果它在每個瀏覽器中都有效(並且它確實如此),那麼就沒有理由做一個重要的重構,如果它像整個應用程序一樣。 – AutoSponge

+0

有效性合規總是很重要的......這是在新版瀏覽器發佈時保持網站不被破壞的主要因素。由於評論不是討論,所以這就是我要離開的地方。 – Sparky