2009-03-04 7 views
127

alınıyor:<select> elemanı seçilen <option> metnini aşağıdaki yılında

<select id="test"> 
    <option value="1">Test One</option> 
    <option value="2">Test Two</option> 
</select> 

nasıl seçilen seçeneğin metin alabilirsiniz (yani "Test biri" ya da "Testi İki") JavaScript

kullanarak

document.getElementsById('test').selectedValue 1 veya 2 değerini döndürür, seçili seçeneğin metnini hangi özellik döndürür?

cevap

214
function getSelectedText(elementId) { 
    var elt = document.getElementById(elementId); 

    if (elt.selectedIndex == -1) 
     return null; 

    return elt.options[elt.selectedIndex].text; 
} 

var text = getSelectedText('test'); 
+0

parlak javascript! Bu cevap modası geçmiş – doniyor

+0

, güzel bir HTML5 tek astar için aşağıdaki davidjb cevabı @ görüyoruz. – Christallkeks

5

options mülkiyet içerdiği tüm <options> - Eğer .text

document.getElementById('test').options[0].text == 'Text One' 
76

bakabilirsiniz oradan jQuery kullanmak istersek aşağıdaki kodu yazabilirsiniz:

$("#selectId option:selected").html(); 
+29

metinden istediği için, muhtemelen daha iyi kullanmak için ''.text() ' – Muhd

+5

" selected "özelliğine sahip olan ancak şu anda seçili olmayan seçeneği seçecek olan" $ ("# selectId option [selected]") ile karıştırılmamalıdır. – mowwwalker

+0

daha karmaşık görünüyor! – NDEthos

42
document.getElementById('test').options[document.getElementById('test').selectedIndex].text; 
+1

Çalışıyor, teşekkürler! – Angelinux

-1
Benzer

düz javascript ile, sadece jQuery olmadan @artur için:Sean parlak en @ kullanma // bunu yapmak mümkün olacak HTML5 altında

var selection=elt.options[elt.selectedIndex].innerHTML; 
5

değişkeni "elt":

document.getElementById('test').selectedOptions[0].text 

Ancak tarayıcı desteği şu anda yoktur. Krom 27 (yazma anda akım) o anda yok belirten Mozilla https://bugzilla.mozilla.org/show_bug.cgi?id=596681 için olağanüstü böceği görmek, bu destekler, ancak.

+0

+1, bu arada bu yoldur. Firefox bileti sabitlendi ve ben de desteklediklerini doğrulamak için MS Edge'i açmaktan rahatsız oldum. – Christallkeks

20
selectElement.options[selectElement.selectedIndex].text; 

Referanslar:

+0

@wormhit'in verdiği cevaptan daha kolay anlaşıldı. –

1

Bu bulduysanız metin özelliği

  • HTML DOM Select Object iş parçacığı ve seçilen seçeneği nasıl alacağını bilmek istedim

    alert(event.target.options[event.target.selectedIndex].text); 
    
  • 3

    this.options [this.selectedIndex] .innerText

    1

    Kullanım seçim listesi nesnesi, kendi seçilmiş seçenekleri endeksi tespit etmek: burada olay üzerinden metin örnek koddur. Buradan - o dizinin iç HTML'sini alın. Ve şimdi bu seçeneğin metin dizesine sahipsiniz.

    <select onchange="alert(this.options[this.selectedIndex].innerHTML);"> 
         <option value="">Select Actions</option> 
         <option value="1">Print PDF</option> 
         <option value="2">Send Message</option> 
         <option value="3">Request Review</option> 
         <option value="4">Other Possible Actions</option> 
        </select> 
    
    +0

    'un sadeleştirilmesi için +1 Biraz açıklama ekleyin – HaveNoDisplayName

    +0

    '.innerHTML' tüm çocukları ve özelliklerini alır. Bir elemanın hiçbir çocuğu olmadığında işe yararken, çocuklu bir öğeniz varsa, amaçlanandan çok daha fazla geri dönüş yapar. – hipkiss

    +1

    tags? – Creeperstanson

    0

    Geçerli seçilen option almak için selectedIndex kullanabilirsiniz: her zaman olduğu gibi

    el = document.getElementById('elemId') 
    selectedText = el.options[el.selectedIndex].text 
    
    İlgili konular