使用JQUERY在ul中是否存在具有特定文本的特定li

时间:2011-10-19 09:57:06

标签: javascript jquery

我有一个代码

喜欢

<ul id="uploadedfiles">
   <li>
       A_001
   </li>
   <li>
       B_001
   </li>
</ul>

现在我想插入一个新的li,但是我想检查那个带有文字的li是否存在于该ul中的东西。如果它存在,则删除旧版本并添加新的li。

假如我添加C_001,则添加时没有问题

但如果我添加A_002,则将A_001替换为A_002。

如果可能,请提供相同的代码。

感谢任何帮助!

添加了:

li中的真实数据有文件,如control20_a.jpg,control21_b.jpg ..... 然后当添加一个新的li说control20_c.jpg时,代码必须替换control20_a.jpg。但是如果它不存在则添加一个新的

2 个答案:

答案 0 :(得分:3)

这可能不是非常惯用的jQuery,但它似乎可以完成这项工作。

Working Example

var add = function(entry) {
    var match = $('#uploadedfiles li:contains(' + entry.slice(0, entry.indexOf('_')) + ')');
    if (match.length > 0) {
        match.text(entry);
    } else {
        $('#uploadedfiles').append($('<li>' + entry + '</li>'));
    }
}

答案 1 :(得分:0)

  1. 我会在li中添加一个类(例如<li class="a"><li class="b">
  2. 添加新LI时,我会删除名称的第一个字符并找到LI
  3. 如果没有li,我会创建它,否则更改newHTML的innerHTML。
  4. 祝你好运

    更新: 如果元素是001到002等你可以做

    $("ul li").each(function() {
        var firstChar = $(this).text().substring(0,1);
        var removeElms = $("ul li:contains('"+firstChar+"'):not(:last)");
        removeElms.remove();
    });