我有清单:
<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/
提前致谢!
答案 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)
<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)
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)
工作回答
var name = 'i am mike1';
var t = $("#filter_analyst select").find("option").filter(function (){return $(this).text()==name }).length
alert(t);