如果在Jquery中内容== smth?

时间:2011-10-21 12:18:20

标签: jquery

抱歉,如果问题的标题不清楚,我真的无法用文字描述它!

我使用Fancy Music Player:http://codecanyon.net/item/fancy-music-player-v20-jquery-plugin 所以我无法编辑主插件文件,所以我必须这样做!

我有两个内容相同的列表:

<ul id="list1">
    <li><em> item one  </em>  <a class="delete" href="#">Delete</a></li>
    <li><em> item two  </em>  <a class="delete" href="#">Delete</a></li>
    <li><em> item three  </em>  <a class="delete" href="#">Delete</a></li>
</ul>

<ul id="list2">
    <em> item one  </em>
    <em> item two  </em>
    <em> item three  </em>
</ul> 

我可以删除第一个列表中的项目.. 但我想删除#list2中的项目,如果它有相同的文本 我不能使用id,所以我想要一种方法来做这样的事情:

    $(".delete").live('click',function(eve) {
      eve.preventDefault();
      // 1- delete item here in the first list 
      //    it's ok

      // 2- delete the same item in the second list  ('#list2') using text inside <em> ?
       var titleItem = $(this).parent().find('em').text(); // i get here ( item one or item two .. etc .  depends on the item clicked above )
       // here I want to see if this titleItem ==  ('#list2 em').text .. so delete it too
       // I have to use the conent here cuz I can not edit to the main jquery plugin :(

    });

谢谢..

3 个答案:

答案 0 :(得分:2)

尝试 -

 $(".delete").live('click',function(eve) {
     eve.preventDefault();
     var titleItem = $(this).parent().find('em').text();
     $(this).parent().find('em').remove();
     $("#list2").find("em:contains('" + titleItem + "')").remove();
 });    

演示 - http://jsfiddle.net/pJmTF/

答案 1 :(得分:2)

$(".delete").live('click',function(event) {

    var titleItem = $(this).parent().find('em').text().trim(); 

    $("#list2 li").each(function(i, item){
        $item = $(item);
        if($item.find('em').text().trim() === titleItem){
             $item.remove();   
        }
    });

});

jsfiddle here

答案 2 :(得分:1)

此处:查看jsfiddle

您需要将文本保存到变量,然后使用.each()函数在list2中搜索它。

$(".delete").live('click',function() {
    var t = $(this).parent().find('em').text();
      // 1- delete item here in the first list 
    $(this).parent().remove();
      // 2- delete the same item in the second list  ('#list2') using text inside <em> ?
    $('#list2 em').each(function(){
        if($(this).text()==t) $(this).remove(); 
    });
          event.preventDefault();
    });