附加Jquery HTML?

附加Jquery HTML?,jquery,Jquery,我试图将中的链接文本附加到中。问题是让它扫描并查找重复的链接,而不是添加新的 代码如下: $('.popular-list li a').live("click",function() //this will apply to all anchor tags { var stuff = $(this).text(); var match = $('#favoritesdrinks li:contains(' + s

我试图将
  • 中的链接文本附加到
    中。问题是让它扫描并查找重复的链接,而不是添加新的
  • 代码如下:

    $('.popular-list li a').live("click",function() //this will apply to all anchor tags
            { 
                    var stuff = $(this).text();
                    var match = $('#favoritesdrinks li:contains(' + stuff + ')');
    
    
                    if(match) {
                            alert("Already Added")
                    } else {
                            $('#favoritesdrinks').append('<li>'+stuff+'</li>');
    
    
                    }
    
    
            }
    );
    
    $('.popular list li a').live(“单击”,函数()//这将应用于所有锚定标记
    { 
    var stuff=$(this.text();
    var match=$('#favoritedlinks li:contains('+stuff+'));
    如果(匹配){
    警报(“已添加”)
    }否则{
    $(“#收藏夹链接”).append(“
  • ”+stuff+”
  • ); } } );
    更新-这是工作代码:

     $('.popular-list li a').live("click",function() //this will apply to all anchor tags
            { 
                    var $stuff = $(this).text();
                    var hasDuplicate = false;
    
          $('#favoritesdrinks li').each( function(){
           if ($(this).text() === $stuff ){
              hasDuplicate = true;
              return false;
           }
        });
    
        if (hasDuplicate ) {
           alert("Already Added") } 
        else {         
           $('#favoritesdrinks').append('<li>'+$stuff+'</li>'); 
        }
    });
    
    $('.popular list li a').live(“单击”,函数()//这将应用于所有锚定标记
    { 
    var$stuff=$(this.text();
    var hasdeplicate=false;
    $('#favoritedlinks li')。每个(函数(){
    if($(this).text()==$stuff){
    hasdeplicate=true;
    返回false;
    }
    });
    如果(重复){
    警报(“已添加”)}
    否则{
    $(“#收藏夹链接”).append(“
  • ”+$stuff+”
  • ”); } });
    您需要通过li项目对每个项目进行检查。然后进行比较,若有匹配项,可以将var设置为true,然后使用returnfalse中断每个变量,这样在已经知道结果的情况下就不会继续迭代

     $('.popular-list li a').click(function() { 
    
        var $stuff = $(this).text();
        var hasDuplicate = false;
    
        $('#favoritesdrinks li').each( function(){
           if ( $(this).text() === $stuff ){
              hasDuplicate = true;
              return false;
           }
        });
    
        if (hasDuplicate ) {
           alert("Already Added") } 
        else {         
           $('#favoritesdrinks').append('<li>'+$stuff+'</li>'); 
        }
    
      });
    
    $('.popular list li a')。单击(函数(){
    var$stuff=$(this.text();
    var hasdeplicate=false;
    $('#favoritedlinks li')。每个(函数(){
    if($(this).text()==$stuff){
    hasdeplicate=true;
    返回false;
    }
    });
    如果(重复){
    警报(“已添加”)}
    否则{
    $(“#收藏夹链接”).append(“
  • ”+$stuff+”
  • ”); } });
    The
    $(“#favoriteslinks li”).text()
    只检索匹配的第一个元素的文本。与其直接调用
    text()
    ,不如尝试在结果上循环(使用
    each()
    ),并在找到文本时设置一些变量(如
    found
    )。

    我认为它只对第一个有效的原因是因为您的选择器:

    var $inside = $('#favoritesdrinks li').text();
    
    这将匹配所有
  • 标记,因此当您将更多项目添加到列表中时,您的比较将不起作用。使用以下选项可能会更幸运:


    您可能不应该将代码更新为工作代码,因为其他来寻找类似问题答案的人会想知道为什么最初会问这个问题,而现在他们不能这样做。加上工作代码是在接受的答案本身!remove()必须重新加载页面吗?呃,我不明白你的意思?只有在函数内部出现错误时,才会重新加载。问另一个问题,贴上你现在的密码,我会回答
    var match = $('#favoritesdrinks li:contains(' + $stuff + ')');
    
    if (match) {
        alert('Already added');
    }
    ...