Ich erhalte einen W3V-Prüferfehler, den ich nicht verstehen kann:
Zeile 31, Spalte 61: Das Attribut
name
ist an dieser Stelle für das Elementdiv
nicht zulässig.
Das ist diese Zeile:
<div name="message" class="jGrowl bottom-right errorGrowl"></div>
Volles 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>
Die Fehlermeldung erscheint ziemlich selbsterklärend. Sie können kein name
-Attribut für ein div
-Tag haben. So könnte Ihr Code so aussehen:
<div id="message" class="jGrowl bottom-right errorGrowl"></div>
und dann ID-Selektoren verwenden:
$('div#message')...
Ich habe einen Eintrag gefunden von:
Für den Fall, dass Sie ein benutzerdefiniertes Attribut definieren möchten, müssen Sie das Attribut mit "data-
" voranstellen.
In diesem Fall wäre der Name also: data-name=""
.
Und Sie können es mit 'div[data-name="value"]'
referenzieren.
Es gibt kein name
-Attribut für div-Elemente.
Wenn Sie eine eindeutig identifizieren möchten, verwenden Sie id
.
Wenn Sie eines als Mitglied einer Gruppe markieren möchten, verwenden Sie class
.
Der einzige Ort, an dem Sie ein name
-Attribut verwenden können (das nicht veraltet ist), ist in Formularsteuerelementen (input
, select
, textarea
und button
).
Dies ist eine späte Antwort, aber da diese Seite gerade bei einer Suche aufkam:
Da das Namensattribut für bestimmte Elemente nicht zulässig ist und in Formularen, die Sie möglicherweise nicht möchten, eine besondere Bedeutung hat, ein Attributname, der mit "data-" beginnt, jedoch für eigene Zwecke verwendet werden kann, empfehle ich die Verwendung von "data-name" "Attribut wie folgt:
<div data-name="message" class="jGrowl bottom-right errorGrowl"></div>
Sie können dann schreiben:
$('[data-name="message"]').text("Here is a new message!");
Und ansonsten manipulieren Sie das div über jQuery.
Die Verwendung von Datenattributen hat den Vorteil, dass es unwahrscheinlich ist, dass dies möglicherweise mit Ihren Frontend-Designern mit IDs und Klassennamen für CSS-Zwecke in Konflikt steht.
In unserem Büro verstehen wir, dass IDs und Klassen für CSS reserviert sind und JavaScript-Entwickler sie in Ruhe lassen sollten. Umgekehrt können Frontend-Designer die ID, die Klassen oder sogar den Elementtyp der meisten Dinge ändern, vorausgesetzt, dass sie sich nicht mit den Datenattributen verwechseln.
Das name
-Attribut ist nicht Bestandteil der Spezifikation für DIV-Elemente. name
ist im Allgemeinen nur für Formularelemente gültig.