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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для чистого JS
    var els = document.getElementsByName('abc');
    var val = els[0].value;

    Для jQuery
    var val = $('input[name="abc"]').val();


    :-( Не въехал сходу в вопрос :-(
    Если вы получаете страницу в своей программе, то надо анализировать, какие скрипты на ней выполняются и какой из них создаёт это поле. Затем смотреть из каких исходных данных и по каким правилам формируется значение поля в скрипте и так же вычислять это значение в своей программе.
    Ответ написан
    Комментировать
  • Как реализуется легкопонятная дата поста/комментария?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Считаем разницу от текущего времени
    Если меньше минуты - выводим "только что"
    Иначе если меньше часа - выводим "XX минуту/минуты/минут назад"
    Иначе если меньше суток - выводим "XX час/часа/часов назад"
    Иначе если меньше двух суток - выводим "вчера"
    Иначе если меньше трёх суток - выводим "позавчера"
    Иначе если меньше месяца - выводим "XX день/дней/дня назад"
    ...
    Ответ написан
    Комментировать
  • Как обобщить скрипт?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как то так

    <div class="rating">
    <a href="#" class="up" name="voite1">↑</a>
    <a href="#" class="down" name="voite1">↓</a>
    <input type="hidden" value="1" class="btn" />
    <input type="hidden" value="1" class="dtn" />
    <span id="numb">37</span>
    </div>


    $(function(){
        $('.up').click(function(){
            var btn = $(this).siblings('.btn').val();
            if (btn<2){
                var number = $(this).siblings('span').text();
                var dtn = $(this).siblings('.dtn').val();
                ++number;
                $(this).siblings('span').text(number).removeClass("red").addClass("blue");
                ++btn;
                --dtn;
                $(this).siblings('.btn').val(btn);
                $(this).siblings('.dtn').val(dtn);
            }
        });
        $('.down').click(function(){
            var dtn = $(this).siblings('.dtn').val();
            if (dtn<2){
                var number = $(this).siblings('span').text();
                var btn = $(this).siblings('.btn').val();
                --number;
                $(this).siblings('span').text(number).removeClass("blue").addClass("red");
                ++dtn;
                --btn;
                $(this).siblings('.btn').val(btn);
                $(this).siblings('.dtn').val(dtn);
            }
        });
    });
    Ответ написан
    Комментировать
  • JavaScript: первые шаги. Как обратиться к вложенному элементу?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    function visibleOnClick (node) {
        var visible = node.childNodes[1]; 
        visible.style.opacity = (visible.style.opacity == 0 ? 1 : 0);
    }


    <div class='box' onclick='visibleOnClick(this)'>
        <ul class='visible'>
    	<li>blabla</li>
    	<li>blabla</li>
        </ul>
    </div>


    this.childNodes[0] - текстовая нода, присутствует если между <div> и <ul> будет хоть один символ, в том числе и перевод строки.

    .style.opacity сделает элемент прозрачным, но место занимать он по прежнему будет. Для освобождения пространства надо переключать .style.display между 'none' и 'block'.
    Ответ написан
    2 комментария