$(this).val() not working to get text from span using jquery
Giving this html, i want to grab "August" from it when i click o开发者_如何学Cn 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
Instead of .val()
use .text()
, like this:
$(".ui-datepicker-month").live("click", function () {
var monthname = $(this).text();
alert(monthname);
});
Or in jQuery 1.7+ use on()
as live
is deprecated:
$(document).on('click', '.ui-datepicker-month', function () {
var monthname = $(this).text();
alert(monthname);
});
.val()
is for input type elements (including textareas and dropdowns), since you're dealing with an element with text content, use .text()
here.
I think you want .text()
:
var monthname = $(this).text();
To retrieve text of an auto generated span value just do this :
var al = $("#id-span-name").text();
alert(al);
-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>
You can use .html()
to get content of span
and or div
elements.
example:
var monthname = $(this).html();
alert(monthname);
Here we go:
$(".ui-datepicker-month").click(function(){
var textSpan = $(this).text();
alert(textSpan);
});
Hope it helps;)
.val()
is for input elements, use .html()
instead
精彩评论