我需要通过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;
});
};
});
答案 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),所以这个解决方案绕过了那个特定的问题(假设信息是正确的)。