我收到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>
答案 0 :(得分:22)
我发现了一些来自:
的条目Markup Validation Error: "Attribute name not allowed on element at this point" error #HTML5
如果您打算定义自定义属性,则必须在属性前添加“data-
”。
所以在这种情况下,名称将是:data-name=""
。
您可以通过'div[data-name="value"]'
引用它。
答案 1 :(得分:20)
错误消息似乎非常自我解释。您在name
代码上不能拥有div
属性。所以你的代码看起来像这样:
<div id="message" class="jGrowl bottom-right errorGrowl"></div>
然后使用id选择器:
$('div#message')...
答案 2 :(得分:16)
div元素没有name
属性。
如果您想要唯一标识一个,请使用id
。
如果您想将其标记为群组成员,请使用class
。
您可以使用name
属性(尚未弃用)的唯一位置是表单控件(input
,select
,textarea
和{{1 }})。
答案 3 :(得分:8)
这是一个迟到的回复,但由于此页面刚出现在搜索中:
由于某些元素不允许使用name属性,并且在您可能不需要的表单中具有特殊意义,但任何以“data-”开头的属性名称都可以用于您自己的目的,我建议使用“ data-name“属性,像这样:
<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,类甚至元素类型,只要它们不会混淆数据属性。
答案 4 :(得分:1)
name
属性不是DIV元素规范的一部分。一般来说,name
仅对表单元素有效。