我得到一个W3V验证错误,我无法理解:
线31,柱61:属性
name
未在这一点上允许元件div
。
这是该行:
<div name="message" class="jGrowl bottom-right errorGrowl"></div>
完整的HTML:
<!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>
该错误消息似乎很自我解释。你不能有一个name
标签div
属性。所以,你的代码看起来是这样的:
<div id="message" class="jGrowl bottom-right errorGrowl"></div>
然后用ID选择:
$('div#message')...
我发现了一些条目从:
Markup Validation Error: "Attribute name not allowed on element at this point" error #HTML5
万一你打算定义自定义属性,你必须在前面加上“data-
”的属性。
因此,在这种情况下,名称为:data-name=""
。
你可以通过'div[data-name="value"]'
引用它。
没有为div元素没有name
属性。
如果你想唯一标识一个,然后使用id
。
如果你想标记一个作为一个组的成员,然后使用class
。
你可以使用一个name
属性(即尚未被弃用)的唯一地方是在表单控件(input
,select
,textarea
和button
)。
这是一个迟到的反应,但由于这个页面在搜索只是想出了:
由于名称属性不上某些元素允许的,并在其中你可能不希望形式的特殊意义,但任何属性名称以“数据 - ”是可以接受的使用自己的目的,我建议使用“数据名称“属性,就像这样:
<div data-name="message" class="jGrowl bottom-right errorGrowl"></div>
然后,您可以这样写:
$('[data-name="message"]').text("Here is a new message!");
否则操作通过jQuery股利。
使用数据的属性有好生之德,这是不可能用你的前端设计可与ID和类名的CSS的目的是做相冲突。
在我们的办公室,我们有一个ID和班级被保留用于CSS的理解和JavaScript开发人员应该独自离开他们。相反,前端设计师,欢迎更改ID,类或大部分东西甚至元素类型,只要他们不惹的数据属性。
所述name
属性不是规范DIV元件的一部分。 name
是,一般来说,只有在表单元素有效。