2014-07-09 90 views
2

如何使用jQuery查找给定值的下拉列表的索引?如何查找给定文本的下拉列表的索引

这里是我的下拉有三个值:

  1. 管理
  2. mananger
  3. 员工

我能够获得所选择的值的索引像下面

var index = $("#mydropdown").find("option:selected").val(); 

但我需要t Ø通过传递经理作为参数传递给一个jQuery函数来获取指数

我试过这样知道经理的指标,但它不工作

var index = $("#mydropdown").find("manager").val(); 

回答

3

您可以使用:contains.filter()。我个人比较喜欢.filter()

var index = $("#mydropdown").find(":contains(manager)").val(); 
//Or 
var index = $("#mydropdown").filter(function(){ 
    return $.trim($(this).text()) === "manager"; 
}).val(); 

此假设你的下拉是这样的:

<select> 
    <option value="1">admin</option> 
    <option value="2">manager</option> 
    <option value="3">employee</option> 
</select> 
+0

嗨男人第一个对我来说工作很好,非常感谢 – user1557020

5

我想你需要的东西是这样的:

JS

$("select option[value='manager']").index() 

HTML

<select> 
    <option value="admin">admin</option> 
    <option value="manager">mananger</option> 
    <option value="employee">employee</option> 
</select> 

fiddle

0

注意:如果需要强制用户进行选择使用一个空的选项,然后有一些代码检查对于值='0'或索引分别为零。 为了这个目的,我在下面的两个实现中都添加了一个空选项。

执行#1:

function optionchanged() 
{ 
    var i = $("#option1").val(); 
    var t = $("#option1 option:selected").text(); 
    console.log("The Index of option selected is: " + i); 
    console.log("The Text of option selected is: " + t); 
} 

分配指数各选项设置为值属性,可以更好地控制返回的值。

<select id="option1" onchange="optionchanged();"> 
    <option value="0"></option> 
    <option value="1">Admin</option> 
    <option value="2">Manager</option> 
    <option value="3">Employee</option> 
</select> 

控制台输出看起来是这样的:

选择 '管理' 产生:
选项的选择的指标是:1
选项的选择的文本是:管理员

选择'员工'生产:
选择的选项索引为:3
选择的选项文本为:员工

执行#2:

如果你不希望添加索引值,可以参考指数直接在jQuery的是这样的:

function optionchanged() 
{ 
    //var i = $("#option1 ").val(); 
    var i = $("#option1 option:selected").index(); 
    var t = $("#option1 option:selected").text(); 
    console.log("The Index of option selected is: " + i); 
    console.log("The Text of option selected is: " + t); 
    //alert("Value of option 1 is: " + index); 
} 


<select id="option1" onchange="optionchanged();"> 
    <option></option> 
    <option>Admin</option> 
    <option>Manager</option> 
    <option>Employee</option> 
</select> 

控制台输出会看的同上。

相关问题