JQuery - найти элемент, который имеет только текст, а не любой другой HTML-тег - PullRequest
6 голосов
/ 15 декабря 2011

Мне нужно проверить с помощью jquery, что якорный элемент содержит только текст, а не какой-либо другой тег (img, b) или что-либо еще.

<a href="">TV</a>

Должен быть найден, но:

<a href=""><img /></a>

или:

<a href=""><span>TV</span></a>

или любой другой тег HTML, не должны быть найдены.

Как мне это сделать?

Спасибо ввперед.

Ответы [ 2 ]

11 голосов
/ 15 декабря 2011

Мы можем использовать функцию filter() для удаления элементов, у которых есть дочерние элементы (проверено с использованием метода children()).

var emptyAs = $('a').filter(function () {
    return $(this).children().length == 0;
});

Вы можететакже используйте селектор :not() в сочетании с селектором :has() ;

var moreEmptyAs = $('a:not(:has(*))');

Оба они работают в следующем JSFiddle;http://jsfiddle.net/JD67U/

0 голосов
/ 15 декабря 2011

Вы можете попробовать .text(), это экранирует только текст и исключает каждый HTML-код.

var pureText=$('a').text();
...