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

Witam, jestem coraz W3C błąd, że nie mogę zrozumieć:nazwa Atrybut niedozwolone na elemencie div w tym momencie

Linia 31, kolumna 61: nazwa atrybutu nie pozwoliło na elementu div w ten punkt.

To jest ten wiersz:

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

Na podstawie poniższych odpowiedzi problem z tym komunikatem o błędzie W3C jest wyrażeniem "w tym momencie". Nie wyjaśnia, czy oznacza to w obecnym momencie, w określonym miejscu w dokumencie, czy w określonym miejscu w porządku elementów atrybutów. To zły komunikat o błędzie. Byłoby lepiej opuścić część "w tym momencie": "Atrybut Name jest niedozwolony w elemencie Div." Byłby to czystszy i łatwiejszy do zrozumienia komunikat o błędzie. –

Odpowiedz

18

Komunikat o błędzie wydaje się dość oczywista. Nie możesz mieć atrybutu name w tagu div. Więc twój kod mógłby wyglądać następująco:

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

a następnie za pomocą selektorów id:

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

Nie ma name atrybut elementów DIV.

Jeśli chcesz jednoznacznie zidentyfikować, użyj id.

Jeśli chcesz oznaczyć jeden jako członek grupy, użyj class.

Jedyne miejsce, można użyć atrybutu name (które nie zostały wycofane) jest na pól formularza (input, select, textarea i button).

1

Atrybut name nie należy do specyfikacji elementów DIV. name jest, ogólnie mówiąc, ważny tylko na elementach formularza.

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

+6

Proszę nie wskazywać na to odwołanie, nie jest wystarczająco dobre: ​​http://w3fools.com/ – Quentin

+8

Z całym szacunkiem, proszę pana, jest to wystarczające do zilustrowania sprawy. Szczerze mówiąc, twój snajper przy wyborze linków jest znacznie mniej przydatny niż jakakolwiek strona, która może mieć problemy z dokładnością. Doceniam to, że starasz się wszystkim o tym powiadomić, ale nie sądzę, że jest to odpowiednie miejsce na twoją krucjatę przeciwko stronie trzeciej. –

+2

Chociaż zgadzam się, że jest to właściwe w zilustrowaniu tego konkretnego punktu, fakt, że w3schools obfituje w błędy w takich sprawach, sprawia, że ​​jest podejrzany o jakiekolwiek wiarygodne referencje. Z pewnością mógłby być bardziej dyplomatyczny. – Isochronous

8

Jest to późna odpowiedź, ale ponieważ ta strona po prostu wpadł w poszukiwaniu:

Ponieważ atrybut nazwa nie jest dozwolona w niektórych elementów i ma szczególne znaczenie w formach, które może nie chcieć, ale każdy atrybut imię zaczynające się od „teleinformatyczny” dopuszczalne jest użycie na potrzeby własne, polecam za pomocą „data-name” atrybutu, tak:

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

następnie można napisać:

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

I inaczej manipuluj div za pomocą jQuery.

Korzystanie z atrybutów danych ma tę zaletę, że jest mało prawdopodobne, aby wystąpiły konflikty z projektantami frontendu z identyfikatorami i nazwami klas dla celów CSS.

W naszym biurze mamy świadomość, że identyfikatory i klasy są zarezerwowane dla CSS, a programiści JavaScript powinni zostawić je w spokoju. Odwrotnie, projektanci frontendów mogą zmieniać ID, klasy, a nawet typ elementu większości rzeczy, pod warunkiem, że nie będą zepsuć atrybutów danych.

Powiązane problemy