Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用javascript数组删除li标记_Jquery_Html_Jquery Selectors_Html Lists - Fatal编程技术网

Jquery 使用javascript数组删除li标记

Jquery 使用javascript数组删除li标记,jquery,html,jquery-selectors,html-lists,Jquery,Html,Jquery Selectors,Html Lists,我正在搜索一个解决方案来删除使用javascript数组过滤的标记 数组: var mygroups=["1","8","3","4","5"] 示例(输入): 这个也不起作用: $('li').filter(function() { if($(this).is('*:has(a[href|=/group/viewgroup/])') { var href = $(this).find('a').attr('href'), trail = hr

我正在搜索一个解决方案来删除使用javascript数组过滤的
  • 标记

    数组:

    var mygroups=["1","8","3","4","5"]
    
    示例(输入):

    这个也不起作用:

     $('li').filter(function() {
        if($(this).is('*:has(a[href|=/group/viewgroup/])') {
            var href = $(this).find('a').attr('href'),
                trail = href.split('/')[3],
                number = + /(\d+)-/.exec(trail)[1];
            return $.inArray(myarray, +number) == -1;
        }
        return true;
    }).remove();
    

    使用过滤函数怎么样

    在此场景中,您选择所有
    li
    ,并过滤掉所需的一个

    $('li').filter(function(index){
        if(/*condition applied*/){
            ....
        }
    });
    
    这很有效

    $("li").each(function() {
              if($(this).find("a").size() == 0) {
                  $(this).remove();
              };
        });
    

    这似乎是你想要的。但这并不是世界上最整洁的代码:

    $('li').filter(function() {
        var a = $(this).find('a');
        if (!a.length)
            return true;
    
        var text = /(\d+)-/.exec(a.attr('href'))[1];  
        if ($.inArray(text , mygroups) >= 0)
            return false;
    
        return true;
    }).remove();
    
    它获取所有的li,然后过滤掉所有与数组具有匹配值的li,并删除剩下的li


    由于您实际上没有进行筛选,您应该在此处使用
    每个
    ,以使代码更易于理解。锚必须在href属性中包含“group”。这只是删除了所有不包含a take的li,问题指出应该使用数组对其进行筛选。IMO,OP中的代码需要重新思考;将
    span
    s与类或其他东西一起使用会非常容易(而且速度会快一点),尽管当前的实现确实有效。请再次检查我的详细信息。找不到第二个“A”标记。请再次检查我的详细信息。它找不到第二个“A”标记。
    $('li').filter(function(index){
        if(/*condition applied*/){
            ....
        }
    });
    
    $("li").each(function() {
              if($(this).find("a").size() == 0) {
                  $(this).remove();
              };
        });
    
    $('li').filter(function() {
        var a = $(this).find('a');
        if (!a.length)
            return true;
    
        var text = /(\d+)-/.exec(a.attr('href'))[1];  
        if ($.inArray(text , mygroups) >= 0)
            return false;
    
        return true;
    }).remove();
    
    $('li').filter(function() {
        if($(this).is('*:has(a[href|=/group/viewgroup/])') {
            var href = $(this).find('a').attr('href'),
                trail = href.split('/')[3],
                number = + /(\d+)-/.exec(trail)[1];
            return $.inArray(myarray, +number) == -1;
        }
        return true;
    }).remove();