jQueryを使用してドロップダウンリスト(選択ボックス)から選択したテキストを取得する


2302

jQueryのドロップダウンリストから選択したテキスト(選択した値ではない)を取得するにはどうすればよいですか?


12
ちょうど私の2セント:「ASP」ドロップダウンは特別ではありません。古き良きHTMLです。:-)
ankush981 2015年

一つは、この記事を参照することができます。javascriptstutorial.com/blog/...
ディリップ・クマールヤダヴ

バニラjavascriptの方法については、stackoverflow.com
a / 5947/32453を

ただ$(this).prop( 'selected'、true); すべてのブラウザで機能する.attを.propに置き換えました
Shahid Hussain Abbasi

回答:


3773
$("#yourdropdownid option:selected").text();

207
$("#yourdropdownid").children("option").filter(":selected").text()is()はオブジェクトがセレクターと一致するかどうかのブール値を返すので、これは当然だと思います。
MHollis

42
is()がブール値を返すことについて、2番目にコメントします。または、次の小さな変更を使用します。$( '#yourdropdownid')。children( "option:selected")。text();
スキュボ

25
テストされた@ DT3 is("selected").text()は、aを返しますTypeError: Object false has no method 'text'
ianace 2012年

96
$('select').children(':selected')最速の方法です:jsperf.com/get-selected-option-text
Simon

3
$( "#IdSelect")。children( "option:selected")。text()
JD-DC TECH

266

これを試して:

$("#myselect :selected").text();

ASP.NETドロップダウンの場合、次のセレクターを使用できます。

$("[id*='MyDropDownId'] :selected")

ここでのASP.NETバージョンは、私にとってasp.netで動作する唯一のJqueryであるため、それに同意します。この1:(「$( 『#yourdropdownidオプション:選択』)のテキスト();」マスターページを使用してasp.netページでは機能しませんでした。
netfed

5
asp.netマスターページがセレクターの前にランダムな文字をスローするため、機能しません。それは技術的に次のようなものを探しています("#ct0001yourdropdownid)
CSharper


1
@CSharper-ASP.NET がランダムな文字をスローすると言っていると、誤解を招くと思います。それらはまったくランダムではなく、構造的であり、厳密なルールに従います(IDコントロールにを置くかどうかなどに基づいており、そうでない場合は、ツリーの現在のレベルで発生する場所のインデックスに基づくなど)。 )
freefaller

こんにちは、どのようにしてテーブルの行/セル内でこれを行うのですか、特にASP MVC 5では、どのドロップダウンをテーブルからどのようにして知るのですか
トランスフォーマー

215

たとえば、ここに投稿された回答は、

$('#yourdropdownid option:selected').text();

私にとってはうまくいきませんでしたが、これはうまくいきました:

$('#yourdropdownid').find('option:selected').text();

おそらく古いバージョンのjQueryです。


7
この答えを嫌うな。「検索」キーワードを使用することでうまくいきました。私はまったく異なる状況から来ていました。
ROFLwTIME 2012

5
オプションパーツは暗黙的に選択されているため、まったく必要ありません。単に$( '#yourdropdownid:selected')。text();を使用します。
正常に

jquery-1.10.2.min、これは私にとってはうまくいきましたが、他のものではうまくいきませんでした。
kubilay 14

人気のある答えは機能しますが、すでに選択したリファレンスへの参照でそれが必要だったので、これが私にとって最良の答えです
Graham


67

これは私のために働く

$("#dropdownid").change(function() {
    alert($(this).find("option:selected").text());
});

要素が動的に作成された場合

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});


55

$("#DropDownID").val() 選択したインデックス値を提供します。


37
質問に対する答えではありませんが、私にとっては役に立ちました。質問では、選択したテキストが必要です。
ピーター

54

これは私にとってはうまくいきます:

$('#yourdropdownid').find('option:selected').text();

jQueryバージョン:1.9.1


3
changeイベントでは$(this).find('option:selected').text()テキストを取得するためにこれを使用できるので、これは私にとってはうまくいきました。
Timo002 14

$(this).children(':selected').text()も機能します。@ Timo002
Mak氏

42

選択したアイテムのテキストには、次を使用します。

$('select[name="thegivenname"] option:selected').text();

選択したアイテムの値については、以下を使用します。

$('select[name="thegivenname"] option:selected').val();

33

さまざまな方法

1. $("#myselect option:selected").text();

2. $("#myselect :selected").text();

3. $("#myselect").children(":selected").text();

4. $("#myselect").find(":selected").text();

31
$("#dropdownID").change(function(){
  alert($('option:selected', $(this)).text());
});

これは、$(this) 私のajaxコールの後に期待していたものです
Shantaram Tupe

これをJQueryオブジェクトでラップせずに$( "option:selected"、this).text()を実行することもできます。
Doug F

28

これを使って

const select = document.getElementById("yourSelectId");

const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;   

次に、選択した値とテキストをselectedValueと内に取得しますselectedText


1
これはjQueryを使用しない唯一の回答であるため、賛成です。
Justin Lessard

私はバニラjsを愛しています。どうもありがとうございました。
エンリケベルムデス

27
var someName = "Test";

$("#<%= ddltest.ClientID %>").each(function () {
    $('option', this).each(function () {
        if ($(this).text().toLowerCase() == someName) {
            $(this).attr('selected', 'selected')
        };
    });
});

それはあなたが正しい方向に行くのに役立ちます。上記のコードは、さらにサポートが必要な場合は完全にテストされています。


19

使用している人のためのSharePointリストをと長い生成されたIDを使用したくない、これは動作します:

var e = $('select[title="IntenalFieldName"] option:selected').text();

17
 $("#selectID option:selected").text();

代わりに、クラスの使用#selectIDなど、任意のjQueryセレクターを使用できます.selectClass

ここのドキュメント述べたように。

:selectedセレクターは<option>要素に対して機能します。チェックボックスやラジオ入力には機能しません。:checkedそれらのために使用します。

.text()のドキュメントを1としてここに

子孫を含む、一致する要素のセット内の各要素の結合されたテキストコンテンツを取得します。

したがって、.text()メソッドを使用して、任意のHTML要素からテキストを取得できます。

詳細な説明については、ドキュメントを参照してください。



13

選択した値を取得するには

$('#dropDownId').val();

選択したテキストを取得するには、次の行を使用します。

$("#dropDownId option:selected").text();


11

jQueryのドロップダウンでテキストと選択した値を選択/変更イベントを選択

$("#yourdropdownid").change(function() {
    console.log($("option:selected", this).text()); //text
    console.log($(this).val()); //value
})

10

次のコードを試してください。

var text= $('#yourslectbox').find(":selected").text();

選択したオプションのテキストを返します。




8

以下は私のために働きました:

$.trim($('#dropdownId option:selected').html())

1
注:これを複数選択に使用しないでください。最初に選択された値のみを取得します。
最大


7

兄弟の場合

<a class="uibutton confirm addClient" href="javascript:void(0);">ADD Client</a>
<input type="text" placeholder="Enter client name" style="margin: 5px;float: right" class="clientsearch large" />
<select class="mychzn-select clientList">
  <option value="">Select Client name....</option>
  <option value="1">abc</option>
</select>


 /*jQuery*/
 $(this).siblings('select').children(':selected').text()

7

$(function () {
  alert('.val() = ' + $('#selectnumber').val() + '  AND  html() = ' + $('#selectnumber option:selected').html() + '  AND .text() = ' + $('#selectnumber option:selected').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title></title>

  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <select id="selectnumber">
          <option value="1">one</option>
          <option value="2">two</option>
          <option value="3">three</option>
          <option value="4">four</option>
        </select>

      </div>
    </form>
  </body>
</html>

クリックしてOutPut画面を表示


こんにちは、テーブルの行/セル内でこれをどのように行うのですかどのドロップダウンをテーブルから知るのですか?値を取得して入力するためのajax呼び出しを行おうとしています。これはページの外部で実行できますが、テーブル行の内部では実行できません...助けを追加してください
トランスフォーマー


4

結果をリストにしたい場合は、次を使用します。

x=[];
$("#list_id").children(':selected').each(function(){x.push($(this).text());})

2
$("#dropdown").find(":selected").text();


$("#dropdown :selected").text();

$("#dropdown option:selected").text();

$("#dropdown").children(":selected").text();

それがうまくいく理由を説明してください
19

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