За последние 24 часа нас посетил 72491 программист и 3046 роботов. Сейчас ищут 1405 программистов ...

javascript'ом искать объект, который вывел цикл

Тема в разделе "PHP для новичков", создана пользователем newkker.tt.pureacleo, 25 июл 2018.

  1. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Как вы манипулируете объектами, которые вывел php цикл?
    Например, показать/спрятать часть поста или комментарии?
    Может быть, нужно в цикле каждому диву комментариев присваивать своё id, от 1 и так далее, а потом в javascript распознавать его по местонахождении кнопки в DOM дереве... Есть вариант проще?
     
    #1 newkker.tt.pureacleo, 25 июл 2018
    Последнее редактирование: 25 июл 2018
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Я гляжу в объект ничего там нет а я все гляжу глаз не отвожу.
     
  4. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Прикиньте, я только что узнал про this.id
     
  5. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Представляю что будет когда узнаешь о var_dump. А потом еще гляди и к дебагеру доберешься и иде нормальное поставишь...
     
  6. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Как правильно вставить переменную, в которой записан id, в querySelector?
     
  7. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. document.querySelector("input[name='user-<?= $obj->id ?>']");
     
  8. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Забыл сказать, переменную с id объекта, который вызвал эту функцию, а функция эта javascript, и она же поместила этот id в ту переменную.
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Все крайне сложно для понимания, друг. Покажи код.
     
    askanim и nospiou нравится это.
  10. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Такс. Пишу всё заново:
    Цикл выводит кнопку и спан несколько раз. Я хочу, чтобы при нажатии на кнопку этот спан менял стиль с Блок на Нон и наоборот. Реализацию я пока вижу только так:
    В цикле сделать автоматический внос id для кнопки.
    В javascript сделать нахождение id нажатой кнопки, а затем document.querySelector(" #id (как переменная) + span"). Ну а потом сам код для действия.
    ------------------------------------------------------------------------------------------------
    Для этого всего мне нужно узнать:
    • Как вносить id для объектов циклом (наверное разберусь по вышесказанному примеру)
    • Как подставлять переменные в document.querySelector
    А кроме того, я до сей поры не нашёл нормального кода для
    • нахождения id нажатой кнопки.
     
  11. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    stop!STOP PLEASE!
    А вы в курсе что в js можно обращаться к селектору класса?
    А вы знали что можно через него обратится к дочернему элементу?
    --- Добавлено ---
    @newkker.tt.pureacleo а ещё включите голову и подумайте вам нужна какая - то переменная статус. Которая будет содержать информацию о том что блок скрыт или закрыт.
    А ещё вы знали что существует такая штучка интересная как data атрибуты у html тегов....
    --- Добавлено ---
    @newkker.tt.pureacleo а вы вообще хоть что нибудь про js читали? Может какие - то курсы... Или ну например там книги?
    --- Добавлено ---
    Вот пожалуйста http://learn.javascript.ru/ Можно за день (край за два) всё перечитать и попробовать.
    --- Добавлено ---
    @newkker.tt.pureacleo а ещё почитать бы для начала что такое js (самый базис какой нибудь)... Например вы бы поняли что он полностью манипулирует всем dom элементом страницы и даже поведением браузера О_О
     
  12. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    А когда ты узнаешь про всплытие события, получая на body, id нажатой кнопки то вообще от радости обосышся xD
     
  13. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Можете растолковать как мне это поможет в моём вопросе?
     
  14. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    просто в теле обработчика проверяй, какой у него id
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    http://jsfiddle.net/qjm8trL2/8/ - на, разбирайся. Всё гораздо проще, чем ты думаешь. Это если на Vanilla.
     
  16. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Спасибо.
     
  17. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Скажите пожалуйста, почему такой код не работает, и может ли работать код такого типа (то-есть через ивент в объекте, а не через прослушиватель)?
    http://jsfiddle.net/qjm8trL2/104/
     
  18. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    В настройках jsfiddle дело. Он по умолчанию js-код внутри обработчика onload размещает. Поменял настройку - всё заработало: http://jsfiddle.net/qjm8trL2/108/

    Не забывай, что в JavaScript есть локальные функции. Да и вообще, почитай книжку про него. или learn.javascript.ru
     
  19. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    До сих пор не могу понять, почему в вашем коде используется parentElement, а не previousElementSibling?
     
  20. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А почему мне был нужен previousElementSibling? И кому я, по твоему, класс opened назначаю, чтобы c появился? Видно же по стилям.
    upload_2018-8-4_22-59-20.png

    По мне, это гибче, чем на .c завязываься, поскольку у .a может быть больше скрытых детей потенциально, и ничего не надо будет переделывать, только стили дописать.
     
  21. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    А если кнопкой является сам верхний див?
    --- Добавлено ---
    Я Понял! http://jsfiddle.net/qjm8trL2/128/
    Чёт долго доходило
     
  22. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    И написал глупость :) Сам не видишь, что не работает. Если ты ловишь клик на a, чтоб показать его внутренность, то на кой чёрт тебе его парент при таких стилях?
     
  23. newkker.tt.pureacleo

    newkker.tt.pureacleo Новичок

    С нами с:
    23 июн 2018
    Сообщения:
    65
    Симпатии:
    0
    Ссылку отправил слишком рано просто