В Angular s - директивы . Таким образом, если у вас есть пустой
href
или нет href
, Angular вызовет event.preventDefault
.
element.on('click', function(event){
// if we have no href url, then don't navigate anywhere.
if (!element.attr(href)) {
event.preventDefault();
}
});
Вот plnkr , демонстрирующий отсутствующий сценарий href
.
Я все еще пытаюсь понять, почему это не находит и не удаляет такие теги:
. Эти обратные косые черты вызывают определенные теги, которые следует игнорировать.
Это может быть проблема с базовым парсером SGML: см. http://www.crummy.com/software/BeautifulSoup/documentation.html#Sanitizing%20Bad%20Data%20with%20Regexps . Вы можете переопределить его, используя регулярное выражение markupMassage
- прямо из документации:
import re, copy
myMassage = [(re.compile('<!-([^-])'), lambda match: '<!--' + match.group(1))]
myNewMassage = copy.copy(BeautifulSoup.MARKUP_MASSAGE)
myNewMassage.extend(myMassage)
BeautifulSoup(badString, markupMassage=myNewMassage)
# Foo<!--This comment is malformed.-->Bar<br />Baz
Прямо из документации к BeautifulSoup, вы можете легко удалить комментарии (или что угодно), используя extract()
:
from BeautifulSoup import BeautifulSoup, Comment
soup = BeautifulSoup("""1<!--The loneliest number-->
<a>2<!--Can be as bad as one--><b>3""")
comments = soup.findAll(text=lambda text:isinstance(text, Comment))
[comment.extract() for comment in comments]
print soup
# 1
# <a>2<b>3</b></a>