尝试获取值3
,我的jQuery出错了什么?
jQuery的:
$('select[name="clauses"]').find("option[text~='OR']").val()
HTML:
<select multiple="" name="clauses" >
<option value="0"> </option>
<option value="1"> ( </option>
<option value="2"> ( Someone</option>
<option value="3"> OR Something ) )</option>
<option value="4">AND Something</option>
</select>
我使用了~
,因为我可能需要找到单词Someone。
编辑:感谢大家的快速回复。不幸的是,我只需要标记答案1
答案 0 :(得分:4)
jQuery没有text
选择器,除了text
不是属性之外,您可以使用:contains
选择器:
$('select[name="clauses"]').find("option:contains('OR')").val();
答案 1 :(得分:2)
text
不是属性,因此您无法在其上使用属性选择器。您可以改为使用contains
:
$('select[name="clauses"]').find("option:contains('OR')").val()
这不会处理像DOOR
这样的情况。如果您需要这样做,请使用带filter
的正则表达式:
$('select[name="clauses"]').find('option').filter(function() {
return $(this).text().match(/\bOR\b/);
}).val();
答案 2 :(得分:1)
您的方法假定<option>
元素具有text
属性,情况并非如此,您正在寻找的是:contains()
选择器,正如您在{{{ 3}}:
描述:选择包含指定文本的所有元素。
请尝试:
$('select[name="clauses"]').children('option:contains(OR)').val();
另请注意,<option>
元素是<select>
的直接子元素,因此在这种情况下无需使用.find()
...
<强> jQuery's documentation 强>