"此时元素div上不允许使用属性名称"

The*_*hew 27 html html5 w3c-validation

我收到一个W3V验证器错误,我无法理解:

第31行,第61列:此时name元素div上不允许属性.

这就是这一行:

<div name="message" class="jGrowl bottom-right errorGrowl"></div>
Run Code Online (Sandbox Code Playgroud)

完整的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>
Run Code Online (Sandbox Code Playgroud)

Ros*_*oss 23

我找到了一些来自:

标记验证错误:"此时元素上不允许使用属性名称"错误#HTML5

如果您打算定义自定义属性,则必须在属性前加上" data-".

所以在这种情况下,名称将是:data-name="".

你可以参考一下'div[data-name="value"]'.


Dar*_*rov 21

错误消息似乎很自我解释.您不能namediv标签上拥有属性.所以你的代码看起来像这样:

<div id="message" class="jGrowl bottom-right errorGrowl"></div>
Run Code Online (Sandbox Code Playgroud)

然后使用id选择器:

$('div#message')...
Run Code Online (Sandbox Code Playgroud)


Que*_*tin 16

namediv元素没有属性.

如果要唯一标识一个,请使用id.

如果要将其标记为组的成员,请使用class.

您可以使用的唯一的地方name属性(尚未过时)是表单控件(input,select,textareabutton).


Tom*_*ell 8

这是一个迟到的回复,但由于此页面刚出现在搜索中:

由于某些元素上不允许使用name属性,并且在您可能不需要的表单中具有特殊意义,但任何以"data-"开头的属性名称都可以用于您自己的目的,我建议使用"数据名称" "属性,像这样:

<div data-name="message" class="jGrowl bottom-right errorGrowl"></div>
Run Code Online (Sandbox Code Playgroud)

然后你可以写:

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

否则通过jQuery操纵div.

数据属性的使用具有以下优点:它不太可能与您的前端设计人员为CSS目的使用ID和类名进行冲突.

在我们的办公室中,我们了解到ID和类是为CSS保留的,而JavaScript开发人员应该不管它们.相反,前端设计人员可以更改大多数事物的ID,类甚至元素类型,只要它们不会混淆数据属性.