Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 07.09.2018, 12:28
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от рони
цикл each и для первого и для второго
Дайте разобраться с предыдущими функциями и методами!))

Мне понравился вариант Aetae, хоть сначала я его и не понял.
Вот, попробовал применить на ещё одном задании:
var a = $('a');

    /*первый вариант функции вывода ссылок;*/
    //    function sum() {
    //        for (var i = 0; i < a.length; i++) {
    //            $(a[i]).html($(a[i]).html() + '(' + a[i].href + ')');
    //        }
    //    }
    //    sum();

    /*второй вариант функции вывода ссылок;*/
    function sum() {
        $a = a;
        $a.append(function (i) {
            return '(' + a[i].href + ')'
        })
    }
    sum();


Скинул два варианта, первый явно бредовый какой-то вышел, с append по-красивее выходит.
Как сказал laimas, нефиг совать jq всюду и делать "гибриды"... Если уж делать на jq то правильно.

Благодарю всех участвующих за терпение и (особенно) примеры функций . Только проблема в том, что из ваших ответов я задаюсь всё большим количеством вопросов . Надеюсь, что в дальнейшем смогу получить на них ответы.
Так то, я уже два месяца как мучаю этот javascript, толком так и не продвинулся. Всякие мелочи делаю, даже калькулятор нормальный сварганить немогу.
Ответить с цитированием
  #32 (permalink)  
Старый 07.09.2018, 12:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069


<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    var $num = $(".p"),
        btn = $(".btn"),
    inp = $("input");
    btn.on({
        "click": sort
    });

    function sort() {
        var val = $.map($num, function(el) {
            return +el.textContent
        }).sort(function(a, b) {
            return a - b
        });
        inp.val(val)
    }
});
  </script>
</head>

<body>
<input type="text">
<div class="p">10</div>
<div class="p">0</div>
<div class="p">5</div>
<div class="p">-1</div>
<button class="btn">Sort</button>

<script>

</script>


</body>
</html>

Последний раз редактировалось рони, 07.09.2018 в 12:32.
Ответить с цитированием
  #33 (permalink)  
Старый 07.09.2018, 12:39
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

drakulawz,
А это что за танцы с бубнами?
var a = $('a');

        $a = a;
        $a.append(function (i) {

Зачем лишний мусор в программе? чтобы потом сложнее было разобраться?
Ответить с цитированием
  #34 (permalink)  
Старый 07.09.2018, 12:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Сообщение от drakulawz
По нажатию на кнопку запишите в конец каждого абзаца его порядковый номер.

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body {
      counter-reset: num;
  }
  .num:after {
      counter-increment: num;
      content: ' 'counter(num);
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    var $num = $(".p"),
        btn = $(".btn");
    btn.on({
        "click": num
    });

    function num() {
        $num.addClass('num')
    }
});
  </script>
</head>

<body>
<div class="p">Первый</div>
<div class="p">Второй</div>
<div class="p">Третий</div>
<div class="p">Четвертый</div>

<button class="btn">num</button>

<script>

</script>


</body>
</html>
Ответить с цитированием
  #35 (permalink)  
Старый 07.09.2018, 12:50
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от Dilettante_Pro
num.html(function(){ arr.push(+this.innerHTML)});
Если я правильно понял, то num здесь взят как объект DOM, а не jq. И метод html к ней всё равно применим? А чтобы перебрать и добавить каждый из этих объектов, методом push, используется this.
Ответить с цитированием
  #36 (permalink)  
Старый 07.09.2018, 13:01
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони, так нечестно! Обман зрения! Ничего не дописывается!
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body {
      counter-reset: num;
  }
  .num:after {
      counter-increment: num;
      content: ' 'counter(num);
  }


  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    var $num = $(".p"),
        btn = $(".btn"),
        tst = $(".test"),
        inp = $("input");
    tst.hide();
    btn.on({
        "click": num
    });
    tst.on({
        "click": test
    });
    function num() {
        $num.addClass('num');
        tst.show();
    }
    function test() {
        var arr = [];
        $num.each(function() { arr.push(this.innerHTML); });
        inp.val(arr);
    }
});
  </script>
</head>

<body>
<div class="p">Первый</div>
<div class="p">Второй</div>
<div class="p">Третий</div>
<div class="p">Четвертый</div>

<button class="btn">num</button>
<button class="test">test</button>
<input type="text">

<script>

</script>


</body>
</html>
Ответить с цитированием
  #37 (permalink)  
Старый 07.09.2018, 13:03
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от drakulawz
num здесь взят как объект DOM
Неправильно. Объект jQuery.
var num = $('.p')


Сообщение от drakulawz
чтобы перебрать и добавить каждый из этих объектов, методом push, используется this
Тоже неправильно.
Перебор выполняет num.html()
this - это конкретный элемент DOM из набора элементов объекта num, получаемый при переборе.

Последний раз редактировалось Dilettante_Pro, 07.09.2018 в 13:08.
Ответить с цитированием
  #38 (permalink)  
Старый 07.09.2018, 13:12
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от Dilettante_Pro
А это что за танцы с бубнами?
Я чё-то подумал, что если не переобъявить эту переменную как jq объект оно работать не будет.

function sort() {
        var val = $.map($num, function(el) {
            return +el.textContent
        }).sort(function(a, b) {
            return a - b
        });
        inp.val(val)
    }

рони, с методом map мне ещё предстоит знакомство. Он создаёт новый масив в котором записаны функции по отношению к элементам массива num. В данном случаи оно создаёт массив цифр, так как в num у нас записаны цифры. Так? А такая запись не правильная была бы +el.text?

function num() {
        $num.addClass('num')
    }

Интересно
Ответить с цитированием
  #39 (permalink)  
Старый 07.09.2018, 13:23
Аспирант
Отправить личное сообщение для drakulawz Посмотреть профиль Найти все сообщения от drakulawz
 
Регистрация: 13.08.2018
Сообщений: 79

Сообщение от Dilettante_Pro
Перебор выполняет num.html()
понял. Я думал, что html указывает только на то, что нужно взять из элементов DOM текст, а функцией уже идёт перебор и именно this указывает на то, что там есть несколько элементов которые нужно записать в новый массив методом push.
Ответить с цитированием
  #40 (permalink)  
Старый 07.09.2018, 13:26
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

drakulawz,
$a = a;
ничего не переобъявляет. Это две переменные одинакового типа и одинакового содержания. $ здесь ничего не значит.
Просто программисты для удобства - чтобы лучше видеть в тексте программы переменные с объектами jq и применять к ним соответствующие методы - зачастую используют $ в имени переменных.

Последний раз редактировалось Dilettante_Pro, 07.09.2018 в 13:30.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему так работает, а по-другому нет? ogurchik Общие вопросы Javascript 2 10.09.2015 18:08
Как вызвать метод? ibolgenos Общие вопросы Javascript 22 20.09.2014 00:04
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
В Firefox 3.5.5 не работает метод POST. Какие методы лечения? javascript_pupil AJAX и COMET 1 10.12.2009 20:34
Драгабл работает не так как надо valek1989 jQuery 0 16.11.2009 18:09