jQuery find()with:包含过滤器不起作用

时间:2013-01-22 17:10:34

标签: jquery

我有一个HTML列表,我尝试在列表中找到一个span元素,其文本等于'cat'

<div id= "target_language_tag_list">
<ul class="target-tag-list">
    <li><span id="tag_18" class="myTag">éléphant</span></li>
    <li><span id="tag_31" class="myTag">box</span></li>
    <li><span id="tag_29" class="myTag">cat</span></li>
    <li><span id="tag_30" class="myTag">pig</span></li>
    <li><span id="tag_32" class="myTag">flower</span></li>
</ul>

我编写了以下js.coffee脚本,但我得到了一个'未定义'的答案

translatedTag = $('input#tag_translated_name').val()  # cat
targetList = $('#target-tag-list')
found = targetList.find("span:contains(" + translatedTagName + ")")
alert 'found: ' + found.attr('id')  # should be tag_29 but is undefined

我也尝试直接测试,同样的未定义错误

found = $("#tags.tab-pane.active #target-tag-list li span:contains('cat')")
alert 'found: ' + found.attr('id')  # should be tag_29 but is undefined

我想我的包含过滤器用法有问题,但是出了什么问题?

2 个答案:

答案 0 :(得分:3)

您的UL没有身份证明,但是没有上课。

因此,没有元素匹配#target-tag-list。 请尝试搜索.target-tag-list的课程。

答案 1 :(得分:0)

试试这个:http://jsfiddle.net/fpS4u/

translatedTag = $('input#tag_translated_name').val();
targetList = $('.target-tag-list');
found = targetList.find("span:contains("+translatedTag+")");
alert('found: ' + found.attr('id'));