$(this).val()无法使用jQuery从span中获取文本

111
给定这段html,当我点击它时,我想从中获取“August”:

给定这段html,当我点击它时,我想从中获取“August”:

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

我尝试过

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

但似乎没有起作用

7个回答

230

使用.text()代替.val(),像这样:

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

在 jQuery 1.7+ 中,请使用 on(),因为 live 已被弃用:

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

.val() 方法用于处理 input 类型元素(包括文本域和下拉菜单),因为你要操作的是带有文本内容的元素,所以在这里使用 .text()


3
注意:.live()在1.7中已经被弃用,在1.9及以上版本中已被移除。 - Darren
我的span元素既可以使用.html()方法,也可以使用.text()方法。 - lft93ryt

22

我认为你想要使用.text()

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

8
要检索自动生成的span值的文本,只需执行以下操作:
var al = $("#id-span-name").text();    
alert(al);

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;

HTML

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

4

我们开始吧:

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

希望这有所帮助;)

4
你可以使用.html()获取spandiv元素的内容。

例如:

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

2

.val() 是用于输入元素的,应该使用 .html()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接