Answers:
它正在寻找ID list
为且属性value
等于的元素2
。
您想要的是的option
孩子list
:
$("#list option[value='2']").text()
$('#list option:selected').text()
$('#list').val()
.trim()
after,.text()
因为某些浏览器有时可能在用户看不见的文本前后添加一些空格,但可能会导致获取错误的值$("#list option[value='2']").text().trim()
如果您想获得值为2的选项,请使用
$("#list option[value='2']").text();
如果要获取当前选择的任何一个选项,请使用
$("#list option:selected").text();
这对我来说非常有效,我正在寻找一种使用MySQL生成的选项发送两个不同值的方法,以下内容是通用且动态的:
$(this).find("option:selected").text();
如评论之一所述。这样,我可以创建一个动态函数,该函数可以与我希望同时获得值,选项值和文本的所有选择框一起使用。
几天前,我注意到,当我使用此代码的网站将jQuery从1.6更新到1.9时,此停止工作...可能与另一段代码冲突...无论如何,解决方案是从find()调用:
$(this).find(":selected").text();
那是我的解决方案...仅当更新jQuery后遇到任何问题时才使用它。
基于Paolo发布的原始HTML,我提出了以下内容。
$("#list").change(function() {
alert($(this).find("option:selected").text()+' clicked!');
});
经过测试,可以在Internet Explorer和Firefox上使用。
如果页面上只有一个选择标记,则可以在ID“列表”中指定选择
jQuery("select option[value=2]").text();
获取所选文本
jQuery("select option:selected").text();
这是一个旧的问题,已经有一段时间没有更新了,现在正确的方法是使用
$("#action").on('change',function() {
alert($(this).find("option:selected").text()+' clicked!');
});
我希望这有帮助 :-)
$(this).children(":selected").text()
optgroup
tag标记为您的孩子select
并且选择的选项在this中时,此方法不起作用optgroup
。使用$("#list option:selected").text();
即使在这种情况下
您可以使用函数获取选定的选项文本 .text();
您可以这样调用函数:
jQuery("select option:selected").text();
在使用.each(function()...)通过动态创建的select元素“循环”时$("option:selected").text();
,$(this + " option:selected").text()
没有返回所选的选项文本-而是为null。
但是Peter Mortensen的解决方案有效:
$(this).find("option:selected").text();
我不知道为什么通常的方法不能成功.each()
(可能是我自己的错误),但是谢谢彼得。我知道这不是最初的问题,但是提到的是“针对通过Google来的新手”。
$('#list option:selected").each()
除了需要从select元素中获取内容外,我本来会开始。
我一直在寻找通过内部字段名称而不是ID来获取val的方法,并且从google到这则帖子中找到了帮助,但没有找到我需要的解决方案,但是我找到了解决方案,这里是:
因此,这可能有助于某人使用字段内部名称来查找所选值,而不是对SharePoint列表使用长ID:
var e = $('select[title="IntenalFieldName"] option:selected').text();
我在处理动态转换对象时需要这个答案,这里的其他方法似乎不起作用:
element.options[element.selectedIndex].text
当然,这将使用DOM对象,而不是使用nodeValue,childNodes等解析其HTML。
提示:如果您的值是动态的,则可以使用以下代码:
$("#list option[value='"+aDynamicValue+"']").text();
或(更好的样式)
$("#list option").filter(function() {
return this.value === aDynamicValue;
}).text();
我想要一个用于选择多个对象的动态版本,该版本可以显示在右侧选择的内容(希望我继续阅读并看过$(this).find
……):
<script type="text/javascript">
$(document).ready(function(){
$("select[showChoices]").each(function(){
$(this).after("<span id='spn"+$(this).attr('id')+"' style='border:1px solid black;width:100px;float:left;white-space:nowrap;'> </span>");
doShowSelected($(this).attr('id'));//shows initial selections
}).change(function(){
doShowSelected($(this).attr('id'));//as user makes new selections
});
});
function doShowSelected(inId){
var aryVals=$("#"+inId).val();
var selText="";
for(var i=0; i<aryVals.length; i++){
var o="#"+inId+" option[value='"+aryVals[i]+"']";
selText+=$(o).text()+"<br>";
}
$("#spn"+inId).html(selText);
}
</script>
<select style="float:left;" multiple="true" id="mySelect" name="mySelect" showChoices="true">
<option selected="selected" value=1>opt 1</option>
<option selected="selected" value=2>opt 2</option>
<option value=3>opt 3</option>
<option value=4>opt 4</option>
</select>
您可以通过以下方式之一
$("#list").find('option').filter('[value=2]').text()
$("#list").find('option[value=2]').text()
$("#list").children('option[value=2]').text()
$("#list option[value='2']").text()
$(function(){
console.log($("#list").find('option').filter('[value=2]').text());
console.log($("#list").find('option[value=2]').text());
console.log($("#list").children('option[value=2]').text());
console.log($("#list option[value='2']").text());
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();