2012-04-13 58 views
0

我是JavaScript編程新手。在練習JavaScript時我找到了下面的例子。不是一個適當的命名約定,但它工作正常,如果它的工作原理是什麼和命名約定需要什麼?

<html> 
<head> 
<script type="text/javascript"> 
function changeTabIndex() 
    { 
    document.getElementById('1').tabIndex="3" 
    document.getElementById('2').tabIndex="2" 
    document.getElementById('3').tabIndex="1" 
    } 
</script> 
</head> 
<body> 

<p><a id="1" href="http://www.w3schools.com">1</a></p> 
<p><a id="2" href="http://www.w3schools.com">2</a></p> 
<p><a id="3" href="http://www.w3schools.com">3</a></p> 

<input type="button" onclick="changeTabIndex()" 
value="Change TabIndex" /> 

</body> 
</html> 

什麼是我的疑問是,命名id屬性約定必須以字母后跟數字和下劃線開始。但在這個例子中,即使他們使用數字作爲id,代碼也能正常工作。那麼遵循以下命名約定的需求是什麼?這似乎很簡單,但任何人請澄清它。

+0

謝謝你的所有答案 – Valli69 2012-04-19 12:04:05

回答

1

大多數人會建議您不要依賴www.w3schools.com獲取有關Javascript的信息。他們的文檔和示例中有很多錯誤。更好的信息來源是實際的W3C參考文檔。關於ID的信息可以在http://www.w3.org/TR/html401/struct/global.html#h-7.5.2找到。在這個特殊情況下,您的瀏覽器實現根本不符合規範:)

+0

閱讀這個http://meta.stackexchange.com/questions/87678/discouraging-w3schools-as-a-resource – 2012-04-13 05:14:29

+2

@IliaFrenkel,問題是,我發現w3schools嚴重缺乏時涉及到信息的質量。在很多情況下,它將部分正確,但在示例材料中存在嚴重問題。假設w3schools有一切錯誤並且[參考規範](http://www.whatwg.org/specs/web-apps/current-work/multipage/)取而代之要好得多。 – zzzzBov 2012-04-13 05:17:22

+0

@zzzzBov我也不喜歡w3schools,但假設整個網站是錯誤的是有點雄心勃勃。 – 2012-04-13 05:20:53

0

根據HTML中的What are valid values for the id attribute in HTML?,ID必須包含至少一個字符,並且不能包含任何空格字符。我猜你的例子可能不適用於舊版瀏覽器。

+0

在IE7中工作正常也 – Valli69 2012-04-13 05:18:19

+0

然後是什麼問題?如果您擔心慣例,請勿使用數字ID。 – 2012-04-13 05:24:29

0

getElementById()在ID屬性中查找令牌值,該值實際上可以是「NAME」或「NUMBER」。我還沒有看到說明這一點的規範部分,但它是我根據像你這樣的例子解釋文檔的方式。這兩個約定在實踐中都有效,但是,我從來不喜歡只使用數字ID。像jQuery sorta在編寫代碼時使用$(#42)有用。

相關問題