2011-02-10 70 views
23
<!DOCTYPE html> 
<html> 
    <head> 
     <title>jGrowl</title> 

     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>  
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script> 

     <script type="text/javascript" src="data/awo-jgrowl.js"></script> 
     <script type="text/javascript" src="data/shortcut.js"></script> 

     <link rel="stylesheet" type="text/css" href="data/awo-jgrowl.css"> 

     <script type="text/javascript"> 
      $(document).ready(function() { 
       $('div[name=message]').awomsg('Input message', {sticky: true}); 
      }); 

      shortcut.add("m",function() { 
       $('div[name=message]').awomsg('Input message', {sticky: true}); 
      }); 

      shortcut.add("h",function() { 
       alert('ur doin it wrong'); 
      }); 
     </script> 

    </head> 
    <body> 
     <div name="message" class="jGrowl bottom-right errorGrowl"></div> 
    </body> 
</html> 

您好,我得到一個W3C錯誤,我無法理解:屬性名稱不允許元素DIV此時

第31行,列61:屬性名稱不允許的元素DIV在此點。

這就是此行:

<div name="message" class="jGrowl bottom-right errorGrowl"></div> 
+0

根據下面的答案,此W3C錯誤消息的問題是表達式「此時」。它沒有說明它是指當前時間點,文檔中的特定位置還是特定元素排序中的特定位置。這是一個錯誤的錯誤消息。離開「此時」部分會更好:「元素Div上不允許使用名稱屬性」。這將是一個更清晰,更容易理解的錯誤信息。 – 2016-09-18 17:49:00

回答

18

該錯誤消息似乎很自我解釋。 div標記上不能有name屬性。所以,你的代碼看起來是這樣的:

<div id="message" class="jGrowl bottom-right errorGrowl"></div> 

,然後使用ID選擇:

$('div#message')... 
16

沒有爲div元素沒有name屬性。

如果您想唯一標識一個,請使用id

如果要將其中一個標記爲組的成員,請使用class

唯一的地方,你可以使用一個name屬性(尚未過時)是表單控件(inputselecttextareabutton)。

1

name屬性不是DIV元素規範的一部分。一般來說,name只對表單元素有效。

參見:http://www.w3schools.com/tags/tag_div.asp

+6

請不要指出該參考文獻,這是不夠好的:http://w3fools.com/ – Quentin 2011-02-10 20:26:48

+8

先生,所有適當的尊重,這是足以說明手頭的事情。坦率地說,你對我所選擇的鏈接的狙擊遠沒有任何可能存在準確性問題的網站有用。我很欣賞你試圖讓每個人都知道,但我不認爲這是適合你對抗第三方網站的合適地點。 – 2011-02-10 20:34:32

8

這是一個遲到的反應,但由於該頁面只是一個搜索想出了:

由於名稱屬性不上某些元素允許的,並在其中你可能不希望形式的特殊意義,但任何屬性名稱以「數據 - 」是可以接受的使用自己的目的,我建議使用「數據名稱」屬性,像這樣:

<div data-name="message" class="jGrowl bottom-right errorGrowl"></div> 

然後,您可以寫:

$('[data-name="message"]').text("Here is a new message!"); 

然後通過jQuery操作div。

數據屬性的使用具有這樣的優點:它不可能與您的前端設計人員爲CSS目的使用ID和類名稱所做的衝突。

在我們的辦公室裏,我們瞭解到ID和類是爲CSS保留的,JavaScript開發者應該讓它們保持獨立。相反,如果前端設計人員不會混淆數據屬性,則歡迎前端設計人員更改大多數事物的ID,類或元素類型。

相關問題