[jquery] $(this).val() not working to get text from span using jquery

Giving this html, i want to grab "August" from it when i click on it:

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

i tried

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

but doesn't seem to be working

This question is related to jquery html

The answer is


-None of the above consistently worked for me. So here is the solution i worked out that works consistently across all browsers as it uses basic functionality. Hope this may help others. Using jQuery 8.2

1) Get the jquery object for "span". 2) Get the DOM object from above. Using jquery .get(0) 3) Using DOM's object's innerText get the text.

Here is a simple example

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

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>

.val() is for input elements, use .html() instead


You can use .html() to get content of span and or div elements.

example:

    var monthname =  $(this).html();
    alert(monthname);

To retrieve text of an auto generated span value just do this :

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

Here we go:

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

Hope it helps;)


I think you want .text():

var monthname = $(this).text();