2011-02-10 11 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> 

Hola, estoy recibiendo un error de W3C que no puedo entender:nombre de atributo no permitió el elemento div en este punto

Línea 31, columna 61: Nombre de atributo no está permitido en el elemento div en este punto.

Eso es esta fila:

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

Basado en las respuestas a continuación, el problema con este mensaje de error W3C es la expresión "en este punto". No deja en claro si significa en el momento actual, en un lugar particular en el documento, o en un lugar particular en el orden de los elementos de atributo. Es un mal mensaje de error. Sería mejor salir de la parte "en este punto": "Atributo de nombre no permitido en el elemento Div". Hubiera sido un mensaje de error más limpio y fácil de entender. –

Respuesta

18

El mensaje de error parece bastante explicativo. No puede tener un atributo name en una etiqueta div. Así que el código podría tener este aspecto:

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

y luego utilizar los selectores de ID:

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

No hay name atributo para los elementos div.

Si desea identificar de manera única a uno, utilice id.

Si desea marcar uno como miembro de un grupo, utilice class.

El único lugar donde puede utilizar un atributo name (que no ha sido desaprobados) está en los controles de formulario (input, select, y textareabutton).

1

El atributo name no forma parte de la especificación de elementos DIV. name es, en términos generales, solo válido en elementos de formulario.

Ver: http://www.w3schools.com/tags/tag_div.asp

+6

Por favor, no señale a esa referencia, no es lo suficientemente bueno: http://w3fools.com/ – Quentin

+8

Con todo el debido respeto, señor, es adecuado para ilustrar el asunto en cuestión. Francamente, sus ataques a mi elección de enlaces son mucho menos útiles que cualquier sitio que pueda tener algunos problemas de precisión. Aprecio que intentes avisarles a todos, pero no creo que este sea un lugar apropiado para tu cruzada contra un sitio de terceros. –

+2

Aunque estoy de acuerdo en que es preciso ilustrar ese punto en particular, el hecho de que w3schools esté plagado de errores en asuntos como este lo hace sospechoso de cualquier tipo de referencia confiable. Definitivamente podría haber sido más diplomático al respecto. – Isochronous

8

Esta es una respuesta tardía, pero desde esta página acaba de entrar en una búsqueda:

Desde el atributo de nombre no está permitido en ciertos elementos y tiene un significado especial en formas que puede que no desee, pero cualquier atributo nombre que comienza con "Data-" es aceptable el uso de los efectos de su propia, recomiendo el uso de los "datos de nombres" atributo, como esto:

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

continuación, puede escribir:

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

Y manipule el div a través de jQuery.

El uso de atributos de datos tiene la virtud de que es poco probable que entren en conflicto con lo que los diseñadores de frontend pueden estar haciendo con ID y nombres de clase para CSS.

En nuestra oficina tenemos entendido que las ID y las clases están reservadas para CSS, y los desarrolladores de JavaScript deben dejarlas en paz. Por el contrario, los diseñadores de frontend son bienvenidos a cambiar el ID, las clases o incluso el tipo de elemento de la mayoría de las cosas, siempre que no entren en conflicto con los atributos de los datos.

Cuestiones relacionadas