Ответы пользователя по тегу JavaScript
  • Почему JavaScript подключают перед закрывающим тегом body?

    @artemsee
    Браузер рендерит страницу сверху вниз, в случае когда скрипты располагаются в теге <head> рендеринг останавливается для того, что бы браузер скачал эти скрипты и затем продолжает работу, для некоторых сайтов эта задержка чувствительная, в таком случае предпочитают сначала вывести контент сайта, а затем подгрузить скрипты.

    Так же существует еще один кейс, правда не очень правильный, когда какая-либо функция скрипта, работает с DOM-элементами сайта. Когда, его подключают сверху эта функция будет пытаться обратится к DOM-элементу который еще не отрендерил браузер, что вызовет ошибку. На примере jQuery это обычно решается с помощью обертки функции в $(document).ready(), можно отказаться от этой обертки, перенеся подгрузку скрипта в самый конец страницы, это гарантирует нам, что DOM будет отображен когда дело дойдет до загрузки скрипта.
    Ответ написан
    3 комментария
  • Как пропустить td при парсинге?

    @artemsee
    Array.from(
       document.getElementsByTagName("table")[1]
           .getElementsByTagName("tr"))
               .forEach(function(item) {
                   console.log(item.getElementsByTagName("td")[0].textContent+ "-" + item.getElementsByTagName("td")[1].textContent);
                }
    );
    Ответ написан
    1 комментарий
  • Валидация формы не работает!?

    @artemsee
    Ваш код в принципе работает, вы напутали с переменными в функции валидации:

    var name = form.email.value; // тут переменная должна называться email, а не name
    var name = form.phone.value;// тут переменная должна называться phone, а не name
    	if(email == "" || email == " ")//Зачем тут двойная проверка?


    Также, если вы вызываете JS прямо из вашего html, то JS код должен обработаться браузером раньше чем html, для этого, если речь идет про jsfiddle, надо в поле ввода JS кода нажать значок настройки и выбрать там LoadType -> in Head. Соответственно, когда будите реализовывать на странице то там тоже нужно будет JS код объявить в секции head.
    Ответ написан
  • Jquery not first and no second?

    @artemsee
    $('#applicants_table tr:gt(1)') -- выберет все tr индекс которых больше 1 (т.е. начиная со второй строки).
    Или можно так, функционал аналогичный: $('#applicants_table tr').slice(1)

    Подробнее почитать и посмотреть примеры можно тут: https://api.jquery.com/gt-selector/
    Ответ написан
    Комментировать
  • Как определить кто выполняет действия Бот или человек?

    @artemsee
    Когда-то читал, что один известный покер-клиент делает это с помощью анализа движения мыши и анализа кликов. В вашем случае может быть что-то подобное, кнопка на сайте нажималась, а курсор мыши при этом оставался неподвижным. Сайт вполне может слушать эти события.
    Ответ написан