За последние 24 часа нас посетили 19526 программистов и 1633 робота. Сейчас ищут 1803 программиста ...

Превращение тега в инпут с тем же значением

Тема в разделе "JavaScript и AJAX", создана пользователем SamyRed, 13 июн 2016.

  1. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Здравствуйте.
    Цель такова:
    хочу чтобы при нажатии, допустим на тег "p" он менялся на input с типом текст, и при этом в этом инпуте сохранялось значение, которое было в "p". Сделал вот так:
    PHP:
    1. $(".services .sub h1").click (function () {
    2.     $(this).replaceTagName('input');
    3.     $(this).val ($(this).text ());
    4. });
    Но проблема в том, что значение то присваивается (это видно когда вызываю алерт с этим значением), но на самой странице в инпуте это значение не появляется, а остаётся пустое поле.
    Надеюсь что объяснил достаточно понятно :)
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Попробуй через временную переменну. Когда ты меняешь тег с параграфа на инпут - исчезает свойство текст. А потом ты пытаешься установить значение скопировав этот несуществующий атрибут.
     
  3. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Либо я тебя неправильно понял, либо ты не прав, по скольку, как я уже написал выше, этот код:
    Код (Javascript):
    1.  
    2.     $(".services .sub h1").click (function () {
    3.         $(this).replaceTagName('input');
    4.         $(this).val ($(this).text());
    5.         alert ($(this).val());
    6.     });
    Выдаёт то что было в теге до изменения. Только вот он не изменяет новый тег на странице. Может дело в том что нужно после изменения работать не с this, а, каким то образом добраться к этому новому элементу?
    --- Добавлено ---
    Как можно установить это значение новому созданному элементу (Только отталкиваясь от this)?
     
    #3 SamyRed, 13 июн 2016
    Последнее редактирование: 13 июн 2016
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    На фидл выложи.
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    HTML:
    1. <h1>df</h1>
    2.     <script>
    3.         $("h1").click(function () {
    4.             $(this).replaceWith('<input type="text" name="nam" value="'+$(this).text()+'">');
    5.          
    6.         });
    7.     </script>
     
    SamyRed нравится это.
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    На фидле вообще не работает
    https://jsfiddle.net/5m2jmze0/1/
    --- Добавлено ---
    А это работает. Спасибо.
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну вот как бы нет у меня функции replaceTagName и я думал что ты на фидле сделаешь необходимую компоновку внешних ресурсов. Ты в консоль вообще заглядываешь при отладке?
     
  8. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Так это же, на сколько мне известно, функция jquery
     
  9. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можешь дать ссылку на документацию по JQuery по этой функции?
     
    metadon нравится это.
  10. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я даже гуглил. Нема такой. В этом значит и проблема.