Я пытаюсь применить класс ко всем элементам, которые содержат текст или которые содержат текст и другие элементы dom внутри.По крайней мере, внутри элемента должен быть какой-то текст.
Этот div должен получить класс:
<div class="theClass">Some text</div>
Этот div также должен получить класс:
<div class="theClass">Some text<div class="theClass more">More text</div></div>
Но этот должен только дать дочернему элементу div класс:
<div class=""><div class="theClass more">More text</div></div>
В данный момент я использую селектор: hasText, который я нашел здесь поиск элементов с текстом, используя jQuery .
jQuery.expr[':'].hasText = function(element, index) {
// if there is only one child, and it is a text node
if (element.childNodes.length == 1 && element.firstChild.nodeType == 3) {
return jQuery.trim(element.innerHTML).length > 0;
}
return false;
};
Но он возвращает только те элементы, которые содержат текст.Мне нравится иметь элементы, которые содержат текст и другие элементы (если они есть).
Спасибо!