Подтвердить что ты не робот

"На данный момент имя атрибута не допускается для элемента 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>
4b9b3361

Ответ 1

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

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

а затем используйте селектора id:

$('div#message')...

Ответ 2

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

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

На всякий случай, когда вы намереваетесь определить настраиваемый атрибут, вам необходимо добавить атрибут с помощью "data-".

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

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

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

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

И иначе манипулируйте div с помощью jQuery.

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

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

Ответ 5

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

Смотрите: http://www.w3schools.com/tags/tag_div.asp