2011-10-19 120 views
-1

是否與特定的文字特定李使用jQuery

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

代碼現在我要插入一個新的鋰,但我要檢查的東西,無論是一個UL內部存在li與文本說A_存在於那個ul中。如果存在,則刪除舊的並添加新的li。

說,如果我添加C_001它被添加沒有問題

但是,如果我添加A_002然後將其替換A_002的A_001。

如果可能,請提供相同的代碼。

任何幫助表示讚賞!

補充:

李實際數據有像control20_a.jpg,control21_b.jpg ..... 文本,然後添加一個新的利時說control20_c.jpg代碼必須更換control20_a.jpg。但是,添加一個新的利,如果它不存在

+2

jQuery有很好的文檔:http://api.jquery.com/contains-selector/ –

+0

@AndyRose我不是在jQuery的那麼好。這個完整的html將從c#中的自定義控件注入。所以我不知道可以做什麼 – Moons

回答

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>')); 
    } 
} 
+0

真棒真棒真棒,你很棒.. – Moons

+0

沒問題Kamal :) –

0
  1. 它,我將一個類添加到李(如<li class="a"><li class="b">
  2. 當添加新LI我會剝奪名字的第一個字符,並找到李
  3. 如果沒有利,我會創造它在其他改變innerHTML的新一個

好運

更新: 如果這些元素從001到002等你可以做

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

李將從自定義控件動態添加,他們也可以成百上千。有沒有更簡單的方法。對性能無關緊要。 – Moons

+0

所以最後你有類似'

  • a_001
  • a_002
  • b_001
  • '等等? –

    +0

    是的,然後當添加新李時,我需要檢查所有以前的所有之前添加一個新的 – Moons