سؤال

يؤدي هذا إلى الحصول على قيمة كل ما تم تحديده في القائمة المنسدلة.

document.getElementById('newSkill').value

ومع ذلك، لا يمكنني معرفة الخاصية التي يجب اتباعها للنص المعروض حاليًا من خلال القائمة المنسدلة.حاولت "النص" ثم نظرت W3Schools ولكن هذا لم يكن لديه الجواب، هل يعرف أحد هنا؟

بالنسبة لأولئك الذين ليسوا متأكدين، إليك HTML للمربع المنسدل.

<select name="newSkill" id="newSkill">
    <option value="1">A skill</option>
    <option value="2">Another skill</option>
    <option value="3">Yet another skill</option>
</select>
هل كانت مفيدة؟

المحلول

استنادًا إلى رمز HTML الخاص بمثالك، إليك إحدى الطرق للحصول على النص المعروض للخيار المحدد حاليًا:

var skillsSelect = document.getElementById("newSkill");
var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;

نصائح أخرى

يجب أن يقوم هذا بإرجاع القيمة النصية للقيمة المحددة

var vSkill = document.getElementById('newSkill');

var vSkillText = vSkill.options[vSkill.selectedIndex].innerHTML;

alert(vSkillText);

الدعائم:@Tanerax لقراءة السؤال ومعرفة السؤال والإجابة عليه قبل أن يفهمه الآخرون.

يحرر:DownModed، لأنني قرأت السؤال بالكامل وأجبت عليه، إنه عالم حزين.

ببساطة يمكنك استخدام Jquery بدلاً من Javascript

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

جرب هذا.

document.getElementById('newSkill').options[document.getElementById('newSkill').selectedIndex].value 

يجب أن تعمل

هذا يعمل لقد جربته بنفسي واعتقدت أنني أنشره هنا في حالة احتياج شخص ما إليه ...

document.getElementById("newSkill").options[document.getElementById('newSkill').selectedIndex].text;

يرفق حدث تغيير بالتحديد الذي يحصل على النص لكل خيار محدد ويكتبه في div.

يمكنك استخدام jQuery فهو وجه جدًا وناجح وسهل الاستخدام

<select name="sweets" multiple="multiple">
  <option>Chocolate</option>
  <option>Candy</option>
  <option>Taffy</option>
  <option selected="selected">Caramel</option>
  <option>Fudge</option>
  <option>Cookie</option>
</select>
<div></div>


$("select").change(function () {
  var str = "";

  $("select option:selected").each(function() {
    str += $( this ).text() + " ";
  });

  $( "div" ).text( str );
}).change();

هل هذا يحصل على الإجابة الصحيحة؟

document.getElementById("newSkill").innerHTML
function getValue(obj)
{  
   // it will return the selected text
   // obj variable will contain the object of check box
   var text = obj.options[obj.selectedIndex].innerHTML ; 

}

مقتطف HTML

 <asp:DropDownList ID="ddl" runat="server" CssClass="ComboXXX" 
  onchange="getValue(this)">
</asp:DropDownList>
    var ele = document.getElementById('newSkill')
    ele.onchange = function(){
            var length = ele.children.length
            for(var i=0; i<length;i++){
                if(ele.children[i].selected){alert(ele.children[i].text)};              
            }
    }   
var selectoption = document.getElementById("dropdown");
var optionText = selectoption.options[selectoption.selectedIndex].text;

يرجى تجربة ما يلي، فهذه هي الطريقة الأسهل وتعمل بشكل مثالي

var newSkill_Text = document.getElementById("newSkill")[document.getElementById("newSkill").selectedIndex];

إليك طريقة سهلة وقصيرة

document.getElementById('elementID').selectedOptions[0].innerHTML
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top