Как сохранить набор (копий) объектов из исходной DOM, поэтому набор сохраняет свои исходные значения, несмотря на изменения DOM?Javascript: как сохранить переменную из изменений DOM?
Например:
<body class="toc endnotes">
и запускает скрипт в том числе это:
function runFunxForBodyClasses()
{
var bodyClass = document.getElementsByTagName("body")[0].className.trim();
if(bodyClass){
// multiple body classes are space-delimited per html/css
var bodyClasses = bodyClass.split(" ");
if(bodyClasses.length > 0){
var h2s = document.getElementsByTagName("h2");
var anchors = getAnchors();
// debugging
alert(anchors.length);
// functions called below, affect the DOM and return void
if(bodyClasses.indexOf('toc') > -1){
addToc(h2s);
}
if(bodyClasses.indexOf('endnotes') > -1){
addEndNotes(anchors);
}
// ... other irrelevant ones here
}
}
}
function getAnchors()
{
return document.getElementById("main").getElementsByTagName("a");
}
function addEndNotes(anchors)
{
if(anchors.length < 1){
return;
}
// debugging
alert(anchors.length);
// ...
С переменной anchors
, я пытаюсь сохранить список якорных объектов, как это было, когда страница пришел с сервера и использовал его как вход для addEndNotes()
.
Что такое addEndNotes()
, однако, есть список объектов-якорей, измененных addToc()
. addToc()
добавляет ссылки на h2 в оглавлении, например «n». Он не использует переменную anchors
ни одно и то же имя.
Однако второе предупреждение сообщает о количестве элементов в anchors
, который является (исходным номером + 2n): на этот список влияют изменения в DOM после объявления anchors
и перед его повторным использованием.
Первоначальная инициализация anchors
была в глобальном масштабе, но я узнал из страницы о переменной scope, что она не инициализирована до тех пор, пока она не находится вне функции. Поэтому я поставил привязку в эту функцию, но это не повлияло на результат.
На другом языке, я бы сказал, что мне нужны копии вместо ссылок, как это делается в JS?
Что находится в 'addToc' –
Можете ли вы представить схему? – danny117