如何搜索列表项内的匹配项?

时间:2013-04-03 11:43:47

标签: jquery html

我有以下问题:

我有添加按钮,这是添加类似标签的内容,我想检查标签是否已添加。 这是我的尝试......但没有成功

 if ($(".selected_tags li span").find($("#tagname").val())) {
    alert("Tag already exists!");
    }

我想我没有正确使用find功能......

提前致谢,

Ž。

编辑:当我看到答案时,我发现你误解了我。那是错的! 所以这里有更多细节:我有一个输入字段和ADD按钮。用户在字段内键入标签名称,当他按下添加按钮时,我需要检查他是否已在列表中添加了带有该名称的标签,并带有标签名称。

这是HTML结构:

<div class="new_article_add_tags_wrap">
            <input type="search" class="search_new_article_tags" id="tagname"/>
            <button class="add_new_article_tag_btn" id="add_tagname"><span>Add</span></button>
        </div>
        <div class="new_article_selected_tags_container">
            <ul class="selected_tags">
                <li>
                    <span>Algorithm</span>
                </li>
                <li>
                    <span>Graph Theory</span>
                </li>
            </ul>
        </div>

因此,每当用户按下“添加”按钮时,我需要通过所有跨度执行简单搜索,以检查标签是否已经存在。

3 个答案:

答案 0 :(得分:1)

鉴于您不能拥有多个具有特定ID的元素,如果您正在寻找ID为tagname的元素,则应该只测试

if ($("#tagname").length) {
    alert("Tag already exists!");
}

如果您要搜索的是标记,而不是ID,请使用

if ($(".selected_tags li span tagname").length) {
    alert("Tag already exists!");
}

如果要查找由id为tagname的输入值给出的标记,作为".selected_tags li span"元素的后代,请使用lenght,如下所示

if ($($('#tagname').val(), ".selected_tags li span").length) {

答案 1 :(得分:1)

尝试length() ...

if ($(".selected_tags li span").find($("#tagname").val()).length > 0) {
  alert("Tag already exists!");
}

不使用find()

if ($(".selected_tags li span tagname").length > 0) {
  alert("Tag already exists!");
}

答案 2 :(得分:0)

你有一些错误,应该是:

if ($(".selected_tags li span").find("#tagname").length) {
    alert("Tag already exists!");
}