<button type="button" class="sorting__button" id="cost-button">Цене</button>
        <ul class="elements__list">
          <li class="elements__item">
            <div class="elements__item-image-container">
              <img class="elements__item-image" src="https://funik.ru/wp-content/uploads/2018/10/17478da42271207e1d86.jpg" alt="Фото котика">
              <button type="button" class="elements__item-like"></button>
              <p class="elements__item-sale">-40%</p>
            </div>
            
            <h2 class="elements__item-title">Кот полосатый</h2>

            <div class="elements__item-about-container">
              <div class="elements__item-rectangle"></div>
              <p class="elements__item-text elements__item-text_first">Коричневый окрас</p>
              <div class="elements__item-text-container">
                <p class="elements__item-text-bold elements__item-text-bold_age">2 мес.</p>
                <p class="elements__item-text">Возраст</p>
              </div>
              <div class="elements__item-text-container elements__item-text-container_second">
                <p class="elements__item-text-bold">4</p>
                <p class="elements__item-text">Кол-во лап</p>
              </div>
            </div>

            <h2 class="elements__item-title elements__item-title_cost">30 500 руб.</h3>

            <button type="button" class="elements__item-button">Купить</button>
          </li>

          <li class="elements__item">
            <div class="elements__item-image-container">
              <img class="elements__item-image" src="https://funik.ru/wp-content/uploads/2018/10/17478da42271207e1d86.jpg" alt="Фото котика">
              <button type="button" class="elements__item-like"></button>
              <p class="elements__item-sale">-40%</p>
            </div>

            <h2 class="elements__item-title">Кот полосатый</h2>

            <div class="elements__item-about-container">
              <div class="elements__item-rectangle"></div>
              <p class="elements__item-text elements__item-text_first">Коричневый окрас</p>
              <div class="elements__item-text-container">
                <p class="elements__item-text-bold elements__item-text-bold_age">2 мес.</p>
                <p class="elements__item-text">Возраст</p>
              </div>
              <div class="elements__item-text-container elements__item-text-container_second">
                <p class="elements__item-text-bold">4</p>
                <p class="elements__item-text">Кол-во лап</p>
              </div>
            </div>

            <h2 class="elements__item-title elements__item-title_cost">20 000 руб.</h3>
              
            <button type="button" class="elements__item-button">Купить</button>
          </li>
          
</ul>
.elements__list {
padding: 0;
margin: 0 auto 0;
list-style: none;
display: grid;
grid-gap: 23px 40px;
grid-template-columns: repeat(auto-fit, 400px);


}

.elements__item {
    background-color: rgb(243, 243, 243);
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}
.elements__item-about-container {
    margin: 24px 0 0 29px;
    padding: 0;
    display: flex;
}
.elements__item-button {
    width: 100%;
    height: 65px;
    border: none;
    padding: 0;
    margin: 50px 0 0;
    background-color: rgb(110, 187, 211);
    cursor: pointer;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    line-height: 20px;
    text-align: center;
    color: rgb(255, 255, 255);
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    
}

.elements__item-button:hover {
    opacity: 0.6;
    transition: opacity 0.5s;
}

.elements__item-button:active {
    background-color: rgb(67, 196, 31);
}

.elements__item-image {
    width: 100%;
    object-fit: cover;
    height: 264px;
    position: relative;
}
.elements__item-image-container {
    position: relative;
}

.elements__item-like {
    position: absolute;
    top: 36px;
    right: 32px;
    padding: 0;
    margin: 0;
    background-image: url('../../../images/like.svg');
    background-repeat: no-repeat;
    cursor: pointer;
    width: 46px;
    height: 40px;
    border: none;
    background-color: transparent;
    
}
.elements__item-rectangle {
    width: 4px;
    height: 26px;
    background-color: rgb(110, 187, 211);
}
.elements__item-sale {
    margin: 0;
    padding: 10px 19px;
    position: absolute;
    top: 34px;
    left: 38px;
    width: 40px;
    background-color: rgb(229, 45, 45);
    font-style: normal;
    font-weight: normal;
    font-size: 16px;
    line-height: 20px;
    color: rgb(255, 255, 255);
    text-align: center;
    border-radius: 10px;
}

.elements__item-text {
    font-style: normal;
    font-weight: normal;
    font-size: 12px;
    line-height: 15px;
    color: rgb(0, 0, 0);
    max-width: 90px;
    margin: 0;
    padding: 0;
}
.elements__item-text_first {
    margin-left: 19px;
}

.elements__item-text-bold {
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    line-height: 20px;
    color: rgb(0, 0, 0);
    max-width: 90px;
    margin: 0;
    padding: 0;
}
.elements__item-text-container {
    margin-left: 20px;
}

.elements__item-text-container_second{
    margin-left: 46px;
}

.elements__item-title {
    margin: 29px 0 0 29px;
    padding: 0;
    font-style: normal;
    font-weight: bold;
    font-size: 24px;
    line-height: 29px;
    color: rgb(0, 0, 0);

}

.elements {
    max-width: 1280px;
}
const costButton = document.getElementById('cost-button');
const allElements = document.querySelectorAll('.elements__item');
const allPrice = '.elements__item-title_cost';

const elementsContainer = document.querySelector('.elements__lis');

//функция по изменению стрелочки
function toggleArrow(arrow) {
    if(arrow.src = "./images/right-arrow-up.png") {
        arrow.src = "./images/right-arrow-down.png";
}
    else {
        arrow.src = "./images/right-arrow-up.png";
    }
};

//функция по сортировке
function sortCard(elements, type, arrow) {
    let sortingObj = {};
    elements.forEach((element, index) => {
        const elementValue = parseInt(element.querySelector(type).textContent.replace('руб.', '').replace(/\s+/g, ''));
        sortingObj[elementValue] = {'element': element, 'index': index};
    });
        toggleArrow(arrow);
        const keys = Object.keys(sortingObj);
    
        function numberSort(a, b) {
            a = parseInt(a);
            b = parseInt(b);
            if (a < b) return -1;
            if (a > b) return 1;
          }
        keys.sort(numberSort);

        keys.map(function(key, index){
            elementsContainer.insertAdjacentElement('beforeend', sortingObj[key]['element']);
          });
        
}



costButton.addEventListener("click", function() {
    sortCard(allElements, allPrice, costArrow);

})

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.