2013-10-22 80 views
0

我需要清除HTML包含中的跨度元素,並通過this example。但是它只是返回包含的第一個純文本字符串,並刪除其他所有內容(include包含超過十幾個我希望保留的href鏈接)。AngularJS:包括清潔dom元素

$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

我沒能取代()來這裏工作在想盡絕招谷歌能找到近4個小時,所以我又回到了正則表達式。我已經忘記了角度將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),所以這個解決方案繞過這個特定的問題(假設信息是正確的)。