我想检查所选项目是否包含特定的单词。例如:
<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')),但不起作用。有谁能帮上忙吗?
发布于 2012-09-20 16:21:42
$('#type').change(function() {
if ($(this).find(':selected').text().indexOf('Interpretation') > -1) {
alert('selected value contains interpretation');
}
});http://jsfiddle.net/HyG6D/
发布于 2012-09-20 16:22:03
尝试:
index = $("#type:selected").text().indexOf('interpreatation');
if(index == -1)
//Show
else
//HideJavaScript没有任何名为contains的函数,一个已知的变通方法是检查特定短语或单词的索引。如果它不存在,则返回-1。
编辑:更改问题代码中的隐藏/显示。
发布于 2012-09-20 16:23:01
因为‘work.The’是你的select标签的id,你的选择器不会在:selected标签上,伪选择器需要在option标签上,而不是在select标签上。在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)...for你的情况。
https://stackoverflow.com/questions/12508598
复制相似问题