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