jQuery: отделение Вида согласно содержанию различных sub отделений

Я пытаюсь создать несколько сложную функцию сортировки, которая ни использует отделения, ни списки. К сожалению, два часа поиска с помощью Google не помогли мне.

Вот основная установка моего HTML:

                            <div id="all_elements">

                <!-- one element -->
                <div class="element">
                    <div class="wrapper">
                    <a href="/" title="links">
                    <img src="/img/image.jpg" border="0" alt="image" class="image" /></a>
                    <div class="details">
                        <h3><a href="/" title="title">Name (Sort Argument 1)</a></h3>
                        <div class="title"><a href="/" title="title">Title (Sort Argument 2)</a></div>
                        <div class="year">2010 (Sort Argumentt 3)</div>
                        <div class="country">Great Britain (Sort Argument 4)</div>
                    </div><!-- details -->
                    </div><!-- wrapper -->
                </div><!-- element -->

            </div> <!--all_elements-->

Установка немного сложна, но в основном .element является элементом, который должен быть отсортирован в алфавитном порядке или согласно содержанию h3, div.title, div.year или согласно div.country. Таким образом, пользователь сможет просмотреть содержание сайта, или отсортированного по имени, к году, страной или заголовком.

У меня есть этот отрывок jQuery с веб-сайта, но все мои попытки при попытке сказать ему использовать содержание, например, h3 к виду перестали работать. Прямо сейчас это сортирует в значительной степени случайным образом.

            jQuery.fn.sort = function() {
                    return this.pushStack([].sort.apply(this, arguments), []);
            };
            function sortAscending(a, b) {
                    return a.innerHTML > b.innerHTML ? 1 : -1;
            };
            function sortDescending(a, b) {
                    return a.innerHTML < b.innerHTML ? 1 : -1;
            };
            $(document).ready(function() {
                $("#sort").toggle(
                        function() {
                                $('#all_elements .element').sort(sortDescending).appendTo('#all_elements');
                                $(this).text("Sort Asc");
                        },
                        function() {
                                $('#all_elements .element').sort(sortAscending).appendTo('#all_elements');
                                $(this).text("Sort Desc");
                        });
            }); 

Как я могу настроить функцию для сортировки содержания моего h3 или отделений?

7
задан Jim Counts 23 March 2010 в 16:39
поделиться

1 ответ

Попробуйте вместо этого эти функции сравнения:

function sortAscending(a, b) {
    return $(a).find("h3").text() > $(b).find("h3").text() ? 1 : -1;
};
function sortDescending(a, b) {
    return $(a).find("h3").text() < $(b).find("h3").text() ? 1 : -1;
};
8
ответ дан 7 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

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