Ответы пользователя по тегу JavaScript
  • Как определить в строке символы и заменить их?

    @teenager_python
    function splitString(stringToSplit, separator) {
        var arrayOfStrings = stringToSplit.split(new RegExp('[' + separator + ']', 'g'));
        var csde = document.querySelector('#krw');
        csde.value = arrayOfStrings.join(' | ');
    }
    Ответ написан
  • При удаление объекта модели Django с подтверждением через всплывающее окно, при нажатии отмены все равно удаляет объект, в чем проблема?

    @teenager_python
    Проблема, вероятно, связана с тем, что при нажатии кнопки "Отмена" форма все равно отправляется и объект удаляется. Это может происходить из-за того, что функция clicked() не прерывает действие по умолчанию (отправку формы), когда пользователь нажимает кнопку "Отмена".

    Для решения этой проблемы можно использовать метод preventDefault() объекта события в функции clicked(), чтобы прервать действие по умолчанию (отправку формы), когда пользователь нажимает кнопку "Отмена".

    function clicked(event) {
       if (confirm('Вы действительно хотите удалить запись?')) {
           yourformelement.submit();
       } else {
           event.preventDefault();
           return false;
       }
    }
    Ответ написан
  • Как можно обратиться к свойству объекта передав константу из useState?

    @teenager_python
    Я бы конечно сделал, вот таким образом
    const [weatherCodes, setWeatherCodes] = useState({
      0: 'Clear sky',
      1: 'Mainly clear',
      2: 'Partly cloudy',
      3: 'Overcast',
      45: 'Fog',
    });

    И обратился бы потом
    const partlyCloudy = weatherCodes[2];
    Ответ написан
    Комментировать
  • Как получить в сообщении название канала youtube?

    @teenager_python
    Я бы на твоем месте, использовал бы регулярки.
    // текст сообщения, который содержит ссылку на канал на YouTube
    let message = "Посмотрите это видео на канале YouTube: https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ";
    
    // регулярное выражение для поиска названия канала на YouTube
    let regex = /youtube\.com\/(channel|user)\/([a-zA-Z0-9_-]{1,})/i;
    
    // поиск соответствия регулярному выражению в тексте сообщения
    let match = message.match(regex);
    
    // если найдено соответствие, извлечь название канала
    if (match) {
      let channelName = match[2];
      console.log("Название канала на YouTube: " + channelName);
    } else {
      console.log("Сообщение не содержит ссылку на канал на YouTube");
    }
    Ответ написан
    Комментировать
  • Можно ли сократить этот код?

    @teenager_python
    $(function() {
    loadItems();
    });
    
    function loadItems() {
    $.getJSON('database/products.json', function(data) {
    function loadCakes(num) {
    let out = '';
    for (let i = 0; i < (num || data.length); i++) {
    out += '<a data-num="' + data[i].id + '" data-category="' + data[i]['category'] + '" class="products__card card">';
    out += '<div class="card__image image">';
    out += '<img src="' + data[i].image + '" alt="' + data[i]['image'] + '">';
    out += '</div>';
    out += '<h3 class="card__title title">' + data[i]['name'] + '</h3>';
    out += '<p class="card__desc">' + data[i]['description'] + '</p>';
    out += '<div class="card__bottom">';
    out += '<p class="card__price">' + data[i].price + ' р.</p>';
    out += '<button class="card__buy">';
    out += '<img src="images/icons/shopping-cart-add.svg" alt="shopping-cart-add">';
    out += '</button>';
    out += '</div>';
    out += '</a>';
    }
    return out;
    }
    $('#cakes-cards').html(loadCakes());
    $('#index-cards').html(loadCakes(6));
    })
    }

    Код был упрощен с помощью цикла for. Теперь функция loadCakes обрабатывает только один случай, в зависимости от переданного параметра num. Если num равен 0 или не был передан, то в цикле обрабатываются все элементы из базы данных. Если num больше 0, то обрабатываются только num элементов. После этого, результат выводится на страницу в нужные элементы.
    Ответ написан
    3 комментария