Здравствуйте. Цель такова: хочу чтобы при нажатии, допустим на тег "p" он менялся на input с типом текст, и при этом в этом инпуте сохранялось значение, которое было в "p". Сделал вот так: PHP: $(".services .sub h1").click (function () { $(this).replaceTagName('input'); $(this).val ($(this).text ()); }); Но проблема в том, что значение то присваивается (это видно когда вызываю алерт с этим значением), но на самой странице в инпуте это значение не появляется, а остаётся пустое поле. Надеюсь что объяснил достаточно понятно
Попробуй через временную переменну. Когда ты меняешь тег с параграфа на инпут - исчезает свойство текст. А потом ты пытаешься установить значение скопировав этот несуществующий атрибут.
Либо я тебя неправильно понял, либо ты не прав, по скольку, как я уже написал выше, этот код: Код (Javascript): $(".services .sub h1").click (function () { $(this).replaceTagName('input'); $(this).val ($(this).text()); alert ($(this).val()); }); Выдаёт то что было в теге до изменения. Только вот он не изменяет новый тег на странице. Может дело в том что нужно после изменения работать не с this, а, каким то образом добраться к этому новому элементу? --- Добавлено --- Как можно установить это значение новому созданному элементу (Только отталкиваясь от this)?
HTML: <h1>df</h1> <script> $("h1").click(function () { $(this).replaceWith('<input type="text" name="nam" value="'+$(this).text()+'">'); }); </script>
На фидле вообще не работает https://jsfiddle.net/5m2jmze0/1/ --- Добавлено --- А это работает. Спасибо.
ну вот как бы нет у меня функции replaceTagName и я думал что ты на фидле сделаешь необходимую компоновку внешних ресурсов. Ты в консоль вообще заглядываешь при отладке?