2017-05-06 2 views
0

bekommen Ich habe Formular zum Hochladen von Bild, das viele divs enthält. Ich möchte den Namen dieses Bildes erhalten, der in div ist, der span enthält.Form, wie div Element aus span

<form class="dropzone dz-clickable dz-started" action="form_upload.html"> 
<div class="dz-preview dz-processing dz-error dz-complete dz-image-preview"> 
<div class="dz-image"> 
//skipped as it is showing complete image 
</div> 
<div class="dz-details"> 
    <div class="dz-size"> 
     80kb 
    </div> 
    <div class="dz-filename"> 
    <span data-dz-name="">aust_ews.PNG</span> 
    </div> 
</div> 

</div> 

</form> 

Ich versuche, die aust_ews.PNG aber nicht zu bekommen zu bekommen.

Hier ist meine Versuche:

var e =$(".dz-filename").val();//failed 

var e =$("#form dz-filename").val();//failed 
+0

user3162878: versuchen Sie es hier echte Wörter zu verwenden, auch in den Kommentaren. Dies ist kein Chatraum - bitte machen Sie Ihr gesamtes Material so leserlich wie möglich. Sicher "aber", "nicht", "bitte" usw. sind nicht zu viel Mühe zu tippen? – halfer

Antwort

3

.val() den Wert abruft (man denke an Eingabefelder), aber Sie müssen den Inhalt zwischen den Tags - Sie brauchen .html().
Abgesehen davon, müssen Sie den Inhalt der inneren span, nicht die äußere div holen - sonst wäre das Ergebnis <span data-dz-name="">aust_ews.PNG</span>.

In Code:

var e = $('.dz-filename span').html(); 

Wenn es immer noch nicht funktioniert, stellen Sie sicher, dass Sie die jQuery-Bibliothek geladen haben. Sie können in der Konsole einchecken, indem Sie einfach $ eingeben und die Eingabetaste drücken. Es sollte etwas wie "Funktion" sagen.

Es ist gute Praxis, solche Dinge innerhalb ready auszuführen. Nur um sicherzustellen, dass es in der Art und Weise arbeiten, werden Sie erwarten:

$(document).ready(function() 
{ 
    var e = $('.dz-filename span').html(); 
}); 

Über ready mehr auf jquery.com manual sehen.

+0

bt, wenn ich alarmiere es tut nichts für die Überprüfung. var e = $ ('. Dz-dateiname span') .html(); Warnung (e); – user3162878

+0

Muss ein Fehler auf Ihrer Seite sein.[Es funktioniert in einer Geige] (https://jsfiddle.net/nfh77a14/). Hast du jQuery geladen? – Pharaoh

+0

Überprüfen Sie die bearbeitete Version - mit '' ready'' sollte es funktionieren. – Sylogista

1

Statt

$(".dz-filename").val(); 

versuchen

$(".dz-filename").text(); 

Als was auch immer HTML oder Text vorhanden innerhalb des div ist nicht der Wert, es wird der Inhalt des div ist. Und Sie können es mit html() oder text() bekommen.

val() funktioniert nur mit Eingabeelementen wie Text, Auswahl, Radio, Kontrollkästchen, da es nach dem value Attribut sucht und es zurückgibt.

Working Fiddle

+0

bt wenn ich mache var e = $ (". Dz-filename") .html(); Warnung (e); nt etwas druckt – user3162878

+0

Überprüfen Sie die Arbeits Geige Link in der Antwort: https://jsfiddle.net/t0gxwd09/ –

+0

ich habe bt Seite gibt jquery Fehler: Reference: ist $ ist nicht definiert – user3162878

1

Bitte überprüfen Sie dies. Es funktioniert hier. Ich habe die Warnung überprüft.

Sie müssen nur Ihren Code innerhalb $(document).ready(function(){} Funktion übergeben.

$(document).ready(function(){ 
 
var e = $(".dz-size").html(); 
 
alert(e) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<form class="dropzone dz-clickable dz-started" action="form_upload.html"> 
 
<div class="dz-preview dz-processing dz-error dz-complete dz-image-preview"> 
 
<div class="dz-image"> 
 
//skipped as it is showing complete image 
 
</div> 
 
<div class="dz-details"> 
 
    <div class="dz-size"> 
 
     80kb 
 
    </div> 
 
    <div class="dz-filename"> 
 
    <span data-dz-name="">aust_ews.PNG</span> 
 
    </div> 
 
</div> 
 

 
</div> 
 

 
</form>