2016-08-08 12 views
1

Ich habe wenig Problem beim Schreiben meines Skripts.jQuery: Wie liest man das Namensattribut?

$(function(){ 
$(".wolny").click(function() { 
var godzina = this.id; 
var minuta = this.name; 
alert(godzina + ":" + minuta); 

});

Warnung sollte mir Ausgabe wie so aussehen: Stunde: Minute. Stattdessen bekomme ich das: Stunde: undefiniert. Ich weiß wirklich nicht, was zu tun ist: x

Hier HTML-Code (php generiert)

<div class="col-sm-3 kafelek wolny" name="15" id="9"></div> 

Dankten für jede Hilfe.

+0

Name ist keine Eigenschaft, sondern ein Attribut. – evolutionxbox

Antwort

1

Versuchen .attr() Funktion statt wie so verwenden:

var minuta = $(this).attr('name'); 

Dies funktioniert, weil name in Ihrem Fall ein Attribut ist und keine Eigenschaft. Dies funktioniert mit jedem zufälligen Attribut wie foo, das Sie hinzufügen können.

Eine bessere Möglichkeit besteht darin, ein Datenattribut wie data-name="something" hinzuzufügen und es mit $(this).data(name) zu lesen.

Arbeitsbeispiel:

$(function(){ 
 
    $(".wolny").click(function() { 
 
     var godzina = this.id; 
 
     var minuta = $(this).attr('name'); 
 
     alert(godzina + ":" + minuta); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="col-sm-3 kafelek wolny" name="15" id="9"> Click me! </div>

+0

hat es funktioniert. Vielen Dank ^^. Ich werde Ihre Frage als Antwort markieren, sobald ich in der Lage bin zu – Ethris

+0

Gern geschehen! – Shaunak

2

Ein div Element nicht technisch haben ein name Attribut. Wenn Sie ein Stück Daten speichern möchten, speichern Sie es als data-* Attribut. Etwas wie folgt aus:

<div class="col-sm-3 kafelek wolny" data-name="15" id="9"></div> 

Dann holen sie als solche:

var minuta = $(this).data('name'); 
-1

dies stattdessen versuchen:

$(function(){ 
 
    $(".wolny").click(function() { 
 
    var godzina = $(this).attr('id'); 
 
    var minuta = $(this).attr('name'); 
 
    alert(godzina + ":" + minuta); 
 
    }); 
 
});

jedoch, wenn möglich, würde ich empfehlen die Verwendung von Datenattribute für Ihre Werte. Hier ein Beispiel:

<div class="col-sm-3 kafelek wolny" data-hour="9" data-minute="15"></div>

Dann wird in der JavaScript, um Sie "Daten-Stunde" und "Daten-minute" für die Attribute anstelle von "id" und "name", wie es ist jetzt.

Verwandte Themen