2011-02-10 87 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,类或元素类型。

相关问题