Здесь есть различные проблемы, но самые большие:
var el = document.createChild('p');
Нет функции document.createChild
, так что это ошибка, предотвращающая запуск любого другого кода. Вот почему вы не видите, что текст para
обновляется, ваше назначение на его innerHTML
после этой строки.
Неясно, почему вы создаете новый элемент, если ваша цель состоит в том, чтобы обновить текст в para
, вы можете просто сделать это:
function replace(){
var str = document.getElementById('para').innerHTML;
var wat = str.replace("ipsum", "World");
document.getElementById('para').innerHTML = wat;
}
replace();
Обратите внимание, что при передаче replace
строку для первого аргумента , будет заменен только экземпляр, поэтому, например, "lorem ipsum lorem ipsum"
станет "lorem World lorem ipsum"
. Если вы хотите заменить все из них, использовать регулярное выражение с g
(«глобальным») флагом:
var wat = str.replace(/ipsum/g, "World");
Если вы сделать хотят создать Append ребенок, функция создать это createElement
и вы добавляете без кавычек:
var el = document.createElement('p'); // <= createElement, not createChild
// ...
document.body.appendChild(el); // <= No quotes
Из комментария вы сделали на вопрос:
Я хочу, чтобы сохранить первоначальный пункт там, а затем добавить еще один с оригиналом, используя замененное слово.
Ладно, тогда вы не хотите обновить para
's innerHTML
, вы хотите установить el
' s innerHTML
вместо:
function replace(){
var str = document.getElementById('para').innerHTML;
var el = document.createElement('p');
el.innerHTML = str.replace("ipsum", "World"); // Or possibly using /ipsum/g
document.body.appendChild(el);
}
какие проблемы вы получаете? – Mritunjay
Ничего не происходит. Он не заменяет слово (по крайней мере, я вижу) или добавляю новый элемент. – mikeLspohn
Если вы хотите изменить текст, почему вы добавляете новые элементы? Изменение '' '' '' '' '' '' '' 'должно быть достаточно, не так ли? Не могли бы вы показать нам jsfiddle, который демонстрирует проблему? – JLRishe