Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Удалить лишние пробелы внутри тега (https://javascript.ru/forum/jquery/71778-udalit-lishnie-probely-vnutri-tega.html)

Creativeeart 11.12.2017 22:12

Удалить лишние пробелы внутри тега
 
Здравствуйте! Не силен в JQuery, нужна срочная помощь!
Есть такой скрипт сортировки по алфавиту:
$(document).ready(function () {
    var $target = $('#layouts ol');
    var $elements = $('.author_poem');
    
    
    $elements.sort(function (a, b) {
        var an = $(a).text(),
            bn = $(b).text();
        
        if (an && bn) {
            return an.toUpperCase().localeCompare(bn.toUpperCase());
        }
        
        return 0;
    });
    $elements.detach().appendTo($target);
});

и такая форма:
<body>

	<h2>Знаменитые династии</h2>
	<hr>
	<section id="layouts">
		<ol class="checklist" id="list">
			<div class="author_poem">
				<li class="author_name"><a href="akterskie_semy/agutin.html">(Тут пробел)Агутин. Всегда был заводилой</a></li>
			</div>
			<div class="author_poem">
				<li class="author_name"><a href="akterskie_semy/ulickaya.htm">Алексютина, В. А. Мотивные комплексы, воплощающие тему семьи в рассказах Л. Улицкой</a> </li>  
			</div>
			
		</ol>
	</section>
</body>

Как мне удалить пустые пробелы перед названием статьи доработав данный скрипт или написанием нового скрипта, пробовал через $.trim, но не знаю как уже выводить в браузере исправленный вариант с последующей сортировкой по алфавиту

Creativeeart 11.12.2017 23:08

$(document).ready(function () {
    var $target = $('#layouts ol');
    var $elements = $('.author_poem');
    
    
    $elements.sort(function (a, b) {
        var an = $.trim($(a).text()),
            bn = $.trim($(b).text());
        if (an && bn) {
            return an.toUpperCase().localeCompare(bn.toUpperCase());
        }
        
        return 0;
    });
    $elements.detach().appendTo($target);
});

Сам разобрался

рони 11.12.2017 23:57

Creativeeart,
$(function () {
    var $target = $('#layouts ol');
    var $elements = $('.author_poem');
    $elements.sort(function (a, b) {
        var an = a.textContent.trim(),
            bn = b.textContent.trim();
        if (an && bn) {
            return an.localeCompare(bn,{sensitivity:"base"});
        }

        return 0;
    });
    $elements.appendTo($target);
});

Creativeeart 12.12.2017 16:38

А можно узнать почему так сделали?

рони 12.12.2017 16:48

Creativeeart,
убрал лишнее на мой взгляд, значит код стал быстрее на 3 попугая :)

laimas 12.12.2017 17:14

Цитата:

Сообщение от рони
начит код стал быстрее на 3 попугая

А 1 попугай чему равен?

рони 12.12.2017 19:53

laimas,
примерно 0.1 ms :)

laimas 12.12.2017 20:43

Цитата:

Сообщение от рони
примерно 0.1 ms

Значит если длина удава равна 48 попугаев, то удав это 4.8 ms. Что-то слишком быстро для удава. :)

рони 12.12.2017 20:52

laimas,
38!!!
:lol:
<iframe width="854" height="480" src="https://www.youtube.com/embed/p7ZBR2mIG9A" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

laimas 12.12.2017 21:12

рони,
тем более. :)


Часовой пояс GMT +3, время: 03:04.