检查下拉列表中的值是否为

时间:2011-10-19 09:36:59

标签: jquery list select

我有清单:

<td id="filter_analyst">
<select>
    <option>mike1</option>
    <option>mike2</option>
    <option>mike3</option>
</select>

我试图检查是否存在某些值:

var name = 'mike1';
alert(name);
var t = ($("#filter_analyst").find("[value='"+name+"']").length) > 1;
alert(t);

但是变得虚假......

我做错了吗? http://jsfiddle.net/BFMD4/32/

提前致谢!

5 个答案:

答案 0 :(得分:3)

value不是选项的标签,而是<option>中的HTML标记。

请参阅此工作示例:http://jsfiddle.net/ZZaSW/

[编辑]另一个更像你的HTML的例子(但没有表格的<td>不起作用,所以我为这个例子添加了<div>

这是HTML:

<div id="filter_analyst">
    <select>
        <option value="mike1">mike1</option>
        <option>mike2</option>
        <option>mike3</option>
    </select>
</div>

和js:

var t = $('#filter_analyst').find('option[value=mike1]').length > 0;

答案 1 :(得分:0)

http://jsfiddle.net/BFMD4/37/

<table>
    <tr>
        <td id="filter_analyst">
            <select id="dropdown1">
                <option value='mike1'>mike1</option>
                <option>mike2</option>
                <option>mike3</option>
            </select>
        </td>
    </tr>

//Find by value
alert($("#dropdown1 option[value='mike1']").length);
//Find by text
alert($("#dropdown1 option:contains('mike1')").length);

在您的原始示例中,td选择器无法正常工作,因为它缺少包装表和tr标记。

答案 2 :(得分:0)

Try demo

var name = 'mike1';
var t = $("#filter_analyst select").find("option").filter("[text='" + name + "']").length >= 1;
alert(t);

答案 3 :(得分:0)

试试这个 HTML如下

<select id="ddltest">
<option value="mike1">mike1</option>
<option value="mike2">mike2</option>
<option value="mike3">mike3</option>

JS代码如下,

 var name = 'mike1';
            var t = $("#ddltest option:contains(" + name + ")").val();
            if (t !== undefined) {
                alert(t);
            } else {
                alert('Name not existing');
            }

答案 4 :(得分:-1)

工作回答

http://jsfiddle.net/BFMD4/45/

var name = 'i am mike1';
var t = $("#filter_analyst select").find("option").filter(function (){return $(this).text()==name }).length
alert(t);