使用jquery从span获取文本

leo*_*ora 93 html jquery

给这个HTML,当我点击它时,我想从中获取"August":

<span class="ui-datepicker-month">August</span>
Run Code Online (Sandbox Code Playgroud)

我试过了

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

但似乎没有奏效

Nic*_*ver 201

而不是像这样.val()使用.text():

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

或者在jQuery 1.7+中使用on()as as livedeprecated:

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

.val()用于输入类型元素(包括textareas和下拉列表),因为您正在处理带有文本内容的元素,请.text()在此处使用.

  • 注意:`.live()`在1.7中已弃用,在1.9+中删除 (3认同)

Mat*_*nes 19

我想你想要.text():

var monthname = $(this).text();
Run Code Online (Sandbox Code Playgroud)


小智 8

要检索自动生成的跨度值的文本,请执行以下操作:

var al = $("#id-span-name").text();    
alert(al);
Run Code Online (Sandbox Code Playgroud)


Far*_*jad 5

- 以上其中一个一直为我工作.所以这里是我解决的解决方案,它使用基本功能在所有浏览器中一致地工作.希望这可以帮助别人.使用jQuery 8.2

1)获取"span"的jquery对象.2)从上面获取DOM对象.使用jquery .get(0)3)使用DOM的对象的innerText获取文本.

这是一个简单的例子

var curSpan = $(this).parent().children(' span').get(0);
var spansText = curSpan.innerText;
Run Code Online (Sandbox Code Playgroud)

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>
Run Code Online (Sandbox Code Playgroud)