$ (this) .val () не работает для получения текста из диапазона с помощью jquery

98

Давая этот html, я хочу взять из него "Август", когда я нажимаю на него:

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

Я попытался

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

но похоже не работает

Леора
источник

Ответы:

210

Вместо .val()использования .text(), вот так:

$(".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()предназначен для элементов типа ввода (включая текстовые поля и раскрывающиеся списки), поскольку вы имеете дело с элементом с текстовым содержимым, используйте .text()здесь.

Ник Крейвер
источник
3
ПРИМЕЧАНИЕ: .live()устарело в 1.7 и удалено в 1.9+
Даррен
Оба .html () и .text () работали для моего элемента span.
lft93ryt
20

Я думаю, вы хотите .text():

var monthname = $(this).text();
Мэтью Джонс
источник
8

Чтобы получить текст автоматически созданного значения диапазона, просто сделайте следующее:

var al = $("#id-span-name").text();    
alert(al);
Святой Рыцарь
источник
5

-Ничего из вышеперечисленного у меня не работало. Итак, вот решение, которое я разработал, которое работает во всех браузерах, поскольку использует базовые функции. Надеюсь, это поможет другим. Использование jQuery 8.2

1) Получите объект jquery для "диапазона". 2) Получите объект DOM сверху. Использование jquery .get (0) 3) Использование innerText объекта DOM для получения текста.

Вот простой пример

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

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>
Фарджад
источник
4

Вы можете использовать .html()для получения содержимого элементов spanи или div.

пример:

    var monthname =  $(this).html();
    alert(monthname);
Ари
источник
3

Вот так:

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

Надеюсь, поможет;)

прагуанец
источник
1

.val()для элементов ввода, используйте .html()вместо этого

серая ворона
источник