$(this).val()がjqueryを使用してスパンからテキストを取得するように機能しない


97

このhtmlを与えて、クリックすると「August」が表示されます。

<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()入力タイプの要素(textareasやドロップダウンを含む)用.text()です。テキストコンテンツの要素を扱うため、ここで使用します。


3
注:.live()1.7で非推奨になり、1.9以降で削除されます
Darren

.html()と.text()の両方が私のspan要素で機能しました。
lft93ryt 2017


8

自動生成されたスパン値のテキストを取得するには、次のようにします。

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

5

-上記のどれも一貫して私のために働いていません。そこで、基本的な機能を使用しているため、すべてのブラウザーで一貫して機能する解決策を以下に示します。これが他の人に役立つことを願っています。jQuery 8.2の使用

1)「スパン」の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

およびの.html()コンテンツを取得するために使用できますspandiv要素の。

例:

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

3

さあ行こう:

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

それが役に立てば幸い;)


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.