JQuery находит все элементы с текстом

Каков был бы лучший способ просканировать канавку весь DOM, найти какой-либо элемент, которые имеют текст и переносят его в класс промежутка? Спасибо

10
задан Mircea 22 June 2010 в 08:14
поделиться

2 ответа

Чтобы обернуть все текстовые узлы, содержащие что-то кроме пробелов:

$('body *').contents().filter(function() { 
    return (this.nodeType == 3) && this.nodeValue.match(/\S/); 
}).wrap("<span />")

Чтобы обернуть все текстовые узлы, включая те, которые содержат только пробелы:

$('body *').contents().filter(function() { 
    return (this.nodeType == 3) && this.nodeValue.length > 0; 
}).wrap("<span />")
14
ответ дан 3 December 2019 в 22:34
поделиться

Вы можете использовать .each для перебора всех элементов:

$('*').each(function(){
    if($(this).text())
    {
        $(this).wrapInner('<span />');
    }
})

Я не тестировал этот фрагмент кода, но он довольно простой. Все, что вам нужно узнать, это .each , wrapInner и * селектор. Здесь очень полезны документы jQuery.

1
ответ дан 3 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: