2017-07-28 77 views
-3

我有一个非常基本的问题。我想从下拉列表中选择SELECTED文本和下拉列表并在警告框中显示。如何从Javascript中的下拉列表中获取文本和值

我尝试:

下拉

<p id="test"> 
    Select a draft: 
    <select id="Select" name="Select"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    </select> 
</p> 

JS

$("#Select").change(function() 
{ 
    alert($(this).val()); // IF THIS WORKS FINE THEN NEXT LINE CODE SHOULD WORK TOO 
    alert($(this).text()); // WHY THIS SHOWS ALL THE DROPDOWN TEXTS 
    alert($("#Select option:selected").text()); // THIS JUST WORKS FINE 
}); 

问题1:什么$(这)表示?如果它表示选定的元素,那么它应该在做$(this).text()时显示文本。但它不能按预期工作。

问题2:如果我需要选择值和上面提到的下拉列表的文本是有效的方法去解决它。

请指导我。

My JSFIDDLE Attempt

+0

'$(本)'是选择本身不是所选的选项 – sTx

+0

为什么反对票。我已经添加了我的小提琴尝试,也添加了我的疑惑 – Unbreakable

+0

不,$(“this”)将所有名为“this”的DOM元素都定位到不存在的位置。你当然意味着$(本) – Salketer

回答

3

在你change事件处理程序,$(this)<select>元素。

$(this)代表的元素取决于使用它的上下文。
例如,它通常是触发事件的元素(如此处)或.each()循环的迭代所针对的元素。

当选择一个<option>,在<select>采取其选择的选项值作为值...
它不所选选项的文本做到这一点。

所以这就是为什么第二个alert()声明不起作用。

+1

接受您的答案,因为这一行'当选择