Удалите пробел и разрывы строки между элементами HTML с помощью jQuery

Вы можете сделать это и многое другое с перезаписью ISAPI (для IIS). Это позволяет вам создавать дружественные URL без всех уродливых строк запроса. Это дает пользователям более удобный интерфейс и может сделать ваш контент более доступным для поиска.

Если вы используете Apache, используйте mod_rewrite.

Основная предпосылка обоих заключается в том, что они берут дружественный URL-адрес (например, тот, который вы видите для этого сайта), а затем преобразуют его, используя серию правил (обычно это заданные вами регулярные выражения), во внутренние URL-адреса или строки запросов, которые легко понять по коду.

Примером может быть то, что они преобразуют posts/edit/<postnumber> в editPost.aspx?postNumber=<postnumber> с помощью правила преобразования.

39
задан mager 8 October 2009 в 17:37
поделиться

5 ответов

Я попробовал технику, которую описал user76888, и она отлично сработала. Я упаковал его в jQuery плагин для удобства, и подумал, что сообществу это может понравиться, так что вот:

jQuery.fn.cleanWhitespace = function() {
    this.contents().filter(
        function() { return (this.nodeType == 3 && !/\S/.test(this.nodeValue)); })
        .remove();
    return this;
}

Чтобы использовать это, просто включите его в тег скрипта, затем выберите тег для очистки с помощью jQuery и вызовите функцию так:

$('#widget').cleanWhitespace();
60
ответ дан 27 November 2019 в 02:09
поделиться

Я думаю, что это подойдет это ...

cleanWhitespace: function(element) {
 element = $(element);
 for (var i = 0; i < element.childNodes.length; i++) {
   var node = element.childNodes[i];
   if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
     Element.remove(node);
 }
}
20
ответ дан 27 November 2019 в 02:09
поделиться

Вероятно, вы сможете сделать это лучше после установки HTML в узел DOM. После того, как браузер все проанализировал и построил дерево DOM из нашей разметки, вы можете выполнить обход DOM и для каждого найденного текстового узла либо полностью удалить его, если в нем нет непробельных символов, либо обрезать пробелы с самого начала. и конец, если это произойдет.

2
ответ дан 27 November 2019 в 02:09
поделиться

Рекурсивная версия:

jQuery.fn.htmlClean = function() {
    this.contents().filter(function() {
        if (this.nodeType != 3) {
            $(this).htmlClean();
            return false;
        }
        else {
            this.textContent = $.trim(this.textContent);
            return !/\S/.test(this.nodeValue);
        }
    }).remove();
    return this;
}
32
ответ дан 27 November 2019 в 02:09
поделиться

Вы можете $. Trim (widgetHTML); , чтобы прочитать окружающие пробелы.

-3
ответ дан 27 November 2019 в 02:09
поделиться
Другие вопросы по тегам:

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