jQuery的:如何select一个选项的文本?
我需要检查一个select是否有一个选项的文本是一个特定的值。
例如<option value="123">abc</option>我会寻找abc。 
有没有一个select器来做到这一点?
 我正在寻找类似于$('#select option[value="123"]'); 但为文本 
这可能有助于:
 $('#test').find('option[text="B"]').val(); 
演示 – http://jsfiddle.net/nmvf6/1/
 这会给你带有文本B的选项,而不是带有包含B文本的选项。 希望这可以帮助 
编辑:
对于jQuery的最新版本,上述不起作用。 正如下面的Quandary所评论的,这对于jQuery 1.9.1是有效的:
 $('#test option').filter(function () { return $(this).html() == "B"; }).val(); 
更新小提琴
 您可以使用:contains()select器来select包含特定文本的元素。 
 例如: 
 $('#mySelect option:contains(abc)') 
 要检查给定的<select>元素是否有这样的选项,请使用.has()方法 : 
 if (mySelect.has('option:contains(abc)').length) 
 要find包含这样一个选项的所有<select> ,使用:has()select器 : 
 $('select:has(option:contains(abc))') 
以前的build议没有在jQuery 1.7.2中为我工作,因为我试图根据文本框中的值设置列表的选定索引,一些文本值包含在多个选项中。 我结束了使用以下内容:
 $('#mySelect option:contains(' + value + ')').each(function(){ if ($(this).text() == value) { $(this).attr('selected', 'selected'); return false; } return true; }); 
 这对我有效: $("#test").find("option:contains('abc')"); 
这是在下拉列表中select文本的最佳方法。
 $("#dropdownid option:contains(your selected text)").attr('selected', true); 
我尝试了一些这些东西,直到我有一个在Firefox和IE工作。 这是我想出来的。
 $("#my-Select").val($("#my-Select" + " option").filter(function() { return this.text == myText }).val()); 
另一种更可读的方式来写它:
 var valofText = $("#my-Select" + " option").filter(function() { return this.text == myText }).val(); $(ElementID).val(valofText); 
伪代码:
 $("#my-Select").val( getValOfText( myText ) ); 
我在下面遇到同样的问题是工作代码:
 $("#test option").filter(function() { return $(this).text() =='Ford'; }).prop("selected", true); 
演示: http : //jsfiddle.net/YRBrp/83/
这将工作在jQuery 1.6(注意在前括号之前的冒号),但在新版本(当时的1.10)上失败。
 $('#mySelect option:[text=abc]") 
使用以下
 $('#select option:contains(ABC)').val(); 
下面的jQuery版本1.10.2为我工作
  var selectedText="YourMatchText"; $('#YourDropdownId option').map(function () { if ($(this).text() == selectedText) return this; }).attr('selected', 'selected'); }); 
您可以遍历选项,也可以将相同的文本放入选项的另一个属性中,然后使用该选项进行select。
这也将起作用。
$('#test')。find(“select option:contains('B')”)。filter(“:selected”);
 正如在这个答案中所描述的,你可以很容易地为hasText创build你自己的select器。 这允许你用$('#test').find('option:hastText("B")').val(); 
这里是我添加的hasText方法:
  if( ! $.expr[':']['hasText'] ) { $.expr[':']['hasText'] = function( node, index, props ) { var retVal = false; // Verify single text child node with matching text if( node.nodeType == 1 && node.childNodes.length == 1 ) { var childNode = node.childNodes[0]; retVal = childNode.nodeType == 3 && childNode.nodeValue === props[3]; } return retVal; }; } 
这是我的答案
 var options = $(dropdown).find('option'); var targetOption = $(options).filter( function () { return $(this).html() == value; }); if(targetOption) { $(options).removeAttr("selected"); $(dropdown).val($(targetOption).val()) } 
感谢所有的职位。
对于jQuery 3:
 $("#myDiv select").val("text");