جایگزینی گره ها (DOM Replace Nodes)
اینجا درباره «جایگزینی گره های DOM» حرف می زنیم. «DOM» نمای درختی سند است. «گره (Node)» هر جزء درخت است. برای جایگزینی، از replaceChild و برای متن، از replaceData یا nodeValue استفاده می کنیم.
جایگزینی یک عنصر با replaceChild()
متد «replaceChild» یک گره را با گره جدید عوض می کند. ابتدا گره جدید را بساز و سپس جایگزین کن.
var xmlDoc = loadXMLDoc("books.xml");
var x = xmlDoc.documentElement;
var newNode = xmlDoc.createElement("book");
var newTitle = xmlDoc.createElement("title");
var newText = xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
var y = xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode, y);
جایگزینی بخشی از متن با replaceData()
متد «replaceData» روی گره متن کار می کند. سه ورودی دارد: offset، length، و متن جدید.
var xmlDoc = loadXMLDoc("books.xml");
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0, 8, "Easy");
تعویض کل متن با nodeValue
گاهی ساده تر است کل متن را عوض کنیم. کافی است مقدار «nodeValue» را تغییر دهیم.
var xmlDoc = loadXMLDoc("books.xml");
var x = xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue = "Easy Italian";
گام های عملی
- گره هدف را پیدا کن.
- گره جدید را بساز.
- با replaceChild گره را عوض کن.
- برای متن از replaceData یا nodeValue استفاده کن.
نکته: offset از صفر شروع می شود. طول، تعداد نویسه های جایگزین است. متن جدید هر رشته دلخواه است.
برای ادامه، بخش حذف گره ها (DOM Remove Nodes) و ساخت گره ها (DOM Create Nodes) را ببین. همچنین جایگزینی گره های DOM را به عنوان مرجع علامت گذاری کن.
جمع بندی سریع
- replaceChild عنصر را جایگزین می کند.
- replaceData بخش متن را عوض می کند.
- nodeValue کل متن را تغییر می دهد.
- offset صفر است و طول، تعداد نویسه هاست.