与val()类似,但对于选择多个中的选定文本?
可能重复:
jQuery从下拉列表中获取选定的文本
<select id="id_deals" name="deals" multiple="multiple">
<option value="1">deal 2</option>
<option value="2">deal 1</option>
</select>
使用jquery,我可以得到如下所选项目的值:
var selected = $(e.target).val();
>> 2
但令人惊讶的是,当我尝试获得实际选定的文本(例如交易1)时,它给了我两个条目:
var selected_text = $(e.target).text();
>> "ndeal 2ndeal 1n"
为什么是这样,我怎么能得到选定的条目的文字?
jQuery的“text()”方法返回所选元素的内部文本。 在你的情况下,你选择了整个选择标签,所以它会给你所有的文本(不包括嵌套标签本身)。 相反,使用:
$("#yourdropdownid option:selected").text();
看到这个:使用jQuery从下拉列表中选择文本(选择框)
e.Target包含选择列表! 这就是为什么你在调用text()
时得到两个选项的text()
。 如果你调用val()
,你会得到选择列表的值,这是其中一个选项的值。
上一篇: Similar to val() but for the selected text in a select multiple?