1

我想检查所选项目是否包含特定单词。前任:

  <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>

查询:

<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'))但不起作用。请问,有人可以帮忙吗?

4

4 回答 4

2
$('#type').change(function() {
    if ($(this).find(':selected').text().indexOf('Interpretation') > -1) {
        alert('selected value contains interpretation');    
    }
});​

http://jsfiddle.net/HyG6D/

于 2012-09-20T08:21:41.603 回答
2

尝试:

index = $("#type:selected").text().indexOf('interpreatation');
if(index == -1)
    //Show
else
    //Hide

JavaScript 没有调用任何函数contains,已知的解决方法是检查特定短语或单词的索引。如果它不存在,则返回-1。

编辑:从问题的代码中更改了隐藏/显示。

于 2012-09-20T08:22:03.220 回答
0

因为 'type' 是你的select标签的 id,所以你的选择器将不起作用。:selected伪选择器需要在option标签上,而不是在 select 标签上。在id='type' 的选择标签找到选定的选项标签,如下所示:

!$("#type option:selected").text(contains('interpretation')){ ...

见: http ://api.jquery.com/selected-selector/

“ :selected 选择器适用于<option>元素......”

更新:我没有注意到你的配方没有.contains 正确使用。
.contains() 测试一个 DOM 元素是否包含另一个。因此,将我上面关于选择器的建议与 Zerkim 的解决方案结合起来,得出:

!$("#type option:selected").text().indexOf('Interpretation') > -1)

...根据您的情况。

于 2012-09-20T08:23:01.120 回答
0

这有帮助吗?

$("#type option").each(function(k,v){

    if($(v).text().indexOf('interpreatation') != -1){

       //do something or add element to an array


    }

});
于 2012-09-20T08:23:53.070 回答