AngularJS:清除包含的dom元素

时间:2013-10-22 20:38:13

标签: jquery angularjs

我需要通过this example清除HTML包含的span元素。但是它只返回include中的第一个纯文本字符串并删除其他所有内容(include包含了我想保留的十几个href链接)。

  $scope.footermenu = function () {
      $http.get('includes/mainmenu.html').success(function(data) {
        var menusrc = data;
        $(menusrc).find('span').remove();
        var nospans = $(menusrc).html();
        return nospans;
      });
    };  
});

1 个答案:

答案 0 :(得分:0)

我无法让替换()在这里工作近4个小时尝试google可以找到的每个技巧,所以我回到了正则表达式。我忘记了角度将class="ng-scope"添加到其权限范围内的每个dom元素(AFAICT),因此我需要将其粘贴在我的正则表达式中以使其正常工作。另请注意,“msrc”正在从dom中拉入,但这似乎并没有对特定问题产生重大影响:

  $scope.footermenu = function () {
        var msrc = $('#menu').html();
        var nospans = function() {
          return msrc.replace(/<span class=\"ng-scope\">(.*?)<\/span>/g,'');
        }
        var mcln = $('<div/>').append( nospans() ).html();
        alert(mcln);
    };

需要进行相当多的清理并对页脚代码进行其他修改,但无论如何都要经过这个障碍。感谢@munsai这个非常重要的提示。有人指出elsewhere msrc!== $(msrc),所以这个解决方案绕过了那个特定的问题(假设信息是正确的)。