На данный момент имя атрибута не разрешено для элемента div

Я получаю ошибку валидатора 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>

person Thew    schedule 10.02.2011    source источник
comment
Судя по приведенным ниже ответам, проблема с этим сообщением об ошибке W3C заключается в выражении на данный момент. Неясно, означает ли это в текущий момент времени, в определенном месте документа или в определенном месте в упорядочении элементов атрибута. Это плохое сообщение об ошибке. На данный момент было бы лучше оставить часть: Атрибут имени не разрешен для элемента Div. Это было бы чище и проще для понимания сообщения об ошибке.   -  person Syntax Junkie    schedule 18.09.2016


Ответы (5)


Сообщение об ошибке кажется довольно понятным. У вас не может быть атрибута name в теге div. Таким образом, ваш код может выглядеть так:

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

а затем используйте селекторы идентификаторов:

$('div#message')...
person Darin Dimitrov    schedule 10.02.2011

Я нашел запись из:

Ошибка проверки разметки: "На данный момент имя атрибута не разрешено для элемента" ошибка #HTML5

На всякий случай, если вы собираетесь определить пользовательский атрибут, вы должны добавить к атрибуту «data-».

Таким образом, в этом случае имя будет: data-name="".

И вы можете сослаться на него по 'div[data-name="value"]'.

person Ross    schedule 17.05.2013
comment
Мне очень помог. Спасибо. - person Afshar Mohebi; 17.11.2014

Для элементов div нет атрибута name.

Если вы хотите однозначно идентифицировать его, используйте id.

Если вы хотите пометить кого-то как члена группы, используйте class.

Единственное место, где вы можете использовать атрибут name (который не объявлен устаревшим), — это элементы управления формы (input, select, textarea и button).

person Quentin    schedule 10.02.2011

Это поздний ответ, но поскольку эта страница только что появилась в поиске:

Поскольку атрибут name не разрешен для определенных элементов и имеет особое значение в формах, которые вам могут не понадобиться, но любое имя атрибута, начинающееся с «data-», приемлемо для использования в ваших собственных целях, я рекомендую использовать «имя данных». " атрибут, например:

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

Затем вы можете написать:

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

И иначе манипулируйте div через jQuery.

Преимущество использования атрибутов данных состоит в том, что оно вряд ли будет конфликтовать с тем, что дизайнеры внешнего интерфейса могут делать с идентификаторами и именами классов для целей CSS.

В нашем офисе есть понимание, что идентификаторы и классы зарезервированы для CSS, и разработчики JavaScript должны оставить их в покое. И наоборот, дизайнеры внешнего интерфейса могут изменять идентификатор, классы или даже тип элемента большинства вещей, при условии, что они не возятся с атрибутами данных.

person Tom Boutell    schedule 11.10.2013

Атрибут name не является частью спецификации элементов DIV. name, вообще говоря, действителен только для элементов формы.

См.: http://www.w3schools.com/tags/tag_div.asp.

person Chris Baker    schedule 10.02.2011
comment
При всем уважении, сэр, этого вполне достаточно для иллюстрации рассматриваемого вопроса. Откровенно говоря, ваша критика моего выбора ссылок гораздо менее полезна, чем любой сайт, у которого могут быть некоторые проблемы с точностью. Я ценю, что вы пытаетесь сообщить всем об этом, но я не думаю, что это подходящее место для вашего крестового похода против стороннего сайта. - person Chris Baker; 10.02.2011
comment
Хотя я согласен с тем, что это точно иллюстрирует этот конкретный момент, тот факт, что w3schools изобилует ошибками по подобным вопросам, делает его подозрительным для любого надежного источника. Хотя он определенно мог бы быть более дипломатичным в этом вопросе. - person Isochronous; 05.07.2013