$ (this) .val () funktioniert nicht, um mit jquery Text aus der Spanne abzurufen

97

Wenn ich dieses HTML gebe, möchte ich "August" daraus ziehen, wenn ich darauf klicke:

<span class="ui-datepicker-month">August</span>

Ich habe es versucht

$(".ui-datepicker-month").live("click", function () {
    var monthname =  $(this).val();
    alert(monthname);
});

scheint aber nicht zu funktionieren

Leora
quelle

Antworten:

210

Statt .val()Verwendung .text(), wie folgt aus :

$(".ui-datepicker-month").live("click", function () {
    var monthname =  $(this).text();
    alert(monthname);
});

Oder verwenden Sie in jQuery 1.7+ on()wie livefolgt:

$(document).on('click', '.ui-datepicker-month', function () {
    var monthname =  $(this).text();
    alert(monthname);
});

.val()Dies gilt für Elemente vom Typ Eingabe (einschließlich Textbereiche und Dropdowns), da Sie es mit einem Element mit Textinhalt zu tun .text()haben.

Nick Craver
quelle
3
HINWEIS: .live()ist in 1.7 veraltet und in 1.9+ entfernt
Darren
Sowohl .html () als auch .text () funktionierten für mein span-Element.
lft93ryt
20

Ich denke du willst .text():

var monthname = $(this).text();
Matthew Jones
quelle
8

Gehen Sie folgendermaßen vor, um Text eines automatisch generierten Bereichswerts abzurufen:

var al = $("#id-span-name").text();    
alert(al);
Heiliger Ritter
quelle
5

-Keine der oben genannten hat konsequent für mich funktioniert. Hier ist die Lösung, die ich ausgearbeitet habe und die in allen Browsern konsistent funktioniert, da sie grundlegende Funktionen verwendet. Hoffe das kann anderen helfen. Verwenden von jQuery 8.2

1) Holen Sie sich das jquery-Objekt für "span". 2) Holen Sie sich das DOM-Objekt von oben. Verwenden von jquery .get (0) 3) Verwenden von innerText des DOM-Objekts, um den Text abzurufen.

Hier ist ein einfaches Beispiel

var curSpan = $(this).parent().children(' span').get(0);
var spansText = curSpan.innerText;

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>
Farjad
quelle
4

Sie können verwenden .html(), um Inhalte von spanund / oder divElementen abzurufen.

Beispiel:

    var monthname =  $(this).html();
    alert(monthname);
Ari
quelle
3

Auf geht's:

$(".ui-datepicker-month").click(function(){  
var  textSpan = $(this).text();
alert(textSpan);   
});

Ich hoffe es hilft;)

praguanisch
quelle
1

.val()ist für Eingabeelemente, verwenden Sie .html()stattdessen

graue Krähe
quelle