我想检查所选项目是否包含特定单词。例如:
<select name='project_type' id='type'>
<option value='1'>Interpretation - S</option>
<option value='2'>Interpretation - K</option>
<option value='5'>Editing</option>
<option value='7'>Translation</option>
</select>
Jquery的:
<script type="text/javascript">
$(document).ready(function(){
//Hide div w/id extra
$("#work1").show();
$("#work2").hide();
// Add onclick handler to checkbox w/id selected
$("#type").live('click', function(){
// If checked
if (!$("#type:selected").text(contains('interpretation')))
{
//show the hidden div
$("#work1").show();
$("#work2").hide();
}
else if ($("#type:selected").text(contains('interpretation')))
{
//otherwise, hide it
$("#work2").show();
$("#work1").hide();
}
});
});
</script>
我需要在文本中获取包含“解释”的所选元素(我想要包含该单词的所有元素)。我做了这个:$("#type:selected").text(contains('interpretation'))
但不起作用。
拜托,有人可以帮忙吗?
答案 0 :(得分:2)
$('#type').change(function() {
if ($(this).find(':selected').text().indexOf('Interpretation') > -1) {
alert('selected value contains interpretation');
}
});
答案 1 :(得分:2)
尝试:
index = $("#type:selected").text().indexOf('interpreatation');
if(index == -1)
//Show
else
//Hide
JavaScript没有任何名为contains
的函数,已知的解决方法是检查特定短语或单词的索引。如果它不存在则返回-1。
编辑:更改了问题代码中的隐藏/显示。
答案 2 :(得分:0)
由于'type'是 select 标记的ID,因此您的选择器将无效。:selected
伪选择器需要位于选项标签,而不是选择标签。在id ='type'的select标签中找到选定的选项标签 ,如下所示:
!$("#type option:selected").text(contains('interpretation')){ ...
请参阅: http://api.jquery.com/selected-selector/
“所选的选择器适用于<option>
元素......”
更新:我没注意到您的配方没有正确使用.contains
。
.contains()测试一个DOM元素是否包含另一个DOM元素。所以,相反,将我对选择器的上述建议与Zerkim的解决方案结合起来,以达到:
!$("#type option:selected").text().indexOf('Interpretation') > -1)
...为你的病情。
答案 3 :(得分:0)
这可能会有所帮助吗?
$("#type option").each(function(k,v){
if($(v).text().indexOf('interpreatation') != -1){
//do something or add element to an array
}
});