Я хочу заменить содержимое второго p
, используя массив childNodes
и игнорируя ненужные артефакты. Когда я изменяю содержимое абзаца с помощью d.childNodes[i].innerHTMl = "paragraph4"
и отображаю результат, отображается "paragraph4"
, но почему он не меняется в документе?
<div id = "myDiv">
<p>pargraph1</p>
<p>paragraph2</p>
<p>paragraph3</p>
</div>
<script type = "text/javascript">
var d=document.getElementById("myDiv");
var pCounter=0;
for(var i=0 ; i<d.childNodes.length ; i++)
{
if ( d.childNodes[i].nodeType == 1)
{
++pCounter;
}
if ( pCounter == 2)
{
alert("i= " + i + " object= "+d.childNodes[i]);
alert("second paragraph before " + d.childNodes[i].innerHTMl);
d.childNodes[i].innerHTMl = "paragraph4";
alert("second paragraph after " + d.childNodes[i].innerHTMl);
break;
}
}
</script>
Когда я показываю результат с помощью alert(second paragraph before " + d.childNodes[i].innerHTMl)
, почему вместо "paragraph2"
отображается undefined?
Спасибо!
У вас опечатка innerHTMl
-> innerHTML
https://www.w3schools.com/jsref/prop_html_innerhtml.asp.
Идентификаторы чувствительны к регистру
Очень приветствуются. Хотя ваш пост решает проблему, я не хотел, чтобы он вводил людей в заблуждение или путал переменные со свойствами. Спасибо за обновление вашего поста.
Разве
innerHTML
свойство не является переменной? Обновить: если подумать, в документации "w3schools", на которую вы ссылаетесь, четко указано «свойство innerHTML»,