2011-02-10 2 views
23
<!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> 

Здравствуйте, я получаю сообщение об ошибке w3c, что я не могу понять:имя атрибута не допускается на элемент DIV на данный момент

линия 31, столбец 61: имя атрибута не допускается на элементе деления при этом точка.

То есть эта строка:

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

На основании нижеприведенных ответов проблема с этим сообщением об ошибке W3C является выражением «на этом этапе». Он не дает понять, означает ли это в текущий момент времени, в определенном месте в документе или в определенном месте в упорядочении элементов атрибута. Это плохое сообщение об ошибке. Было бы лучше оставить часть «в этой точке»: «Атрибут имени не разрешен для элемента Div». Было бы более понятным и понятным сообщение об ошибке. –

ответ

18

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

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

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

$('div#message')... 
16

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

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

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

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

1

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

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

+6

Пожалуйста, не указывайте на эту ссылку, это не достаточно хорошо: http://w3fools.com/ – Quentin

+8

При всем уважении, сэр, это достаточно для иллюстрации этого вопроса. Честно говоря, ваш снайпер на мой выбор ссылок гораздо менее полезен, чем любой сайт, который может иметь некоторые проблемы с точностью. Я ценю, что вы пытаетесь сообщить всем, но я вряд ли думаю, что это подходящее место для вашего крестового похода на стороннем сайте. –

+2

Хотя я согласен с тем, что это точно иллюстрирует этот конкретный момент, тот факт, что w3schools изобилует ошибками по таким вопросам, делает его подозрительным для любой надежной ссылки. Однако он определенно мог быть более дипломатичным. – Isochronous

19

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

Markup Validation Error: "Attribute name not allowed on element at this point" error #HTML5

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

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

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

+0

Помог мне много. Благодарю. –

+0

Отличный обход, только то, что мне нужно! – Deanie

8

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

Поскольку имя атрибут не допускаются на определенных элементах и ​​имеет особое значение в формах, которые вы не можете, но любой атрибут имя, начинающееся с «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 должны оставить их в покое. И наоборот, дизайнеры интерфейсов могут изменять идентификаторы, классы или даже элементы типа большинства вещей, при условии, что они не испортили атрибуты данных.

Смежные вопросы