0

重複の可能性:
javascriptを使用して実際のHTML値を取得する

だから私はここで2つの問題があります。私が最初にやろうとしていることを説明させてください。値が変更されるページがありますが、変更する前に値を取得して保持し、ボタンを押したら、htmlを元のhtmlに変更します。まず第一に、私の最大の問題は、initial2関数のコメントを外そうとすると、機能しないことです。それは私をウェブページに連れて行き、そして何らかの理由でhtmlのURLが変更しようとし、それはそれがページを見つけることができないと言います。2番目の、そして私にとってより理解しやすい問題は、関数previousacceptがpreviousnames関数の値を使用できないことです。

function previousnames()
{
name= document.getElementById('name').innerHTML;
imagetitle= document.getElementById('imagetitle').innerHTML;
location=document.getElementById('location').innerHTML;
similarities = document.getElementById('similarities').innerHTML;
type = document.getElementById('type').innerHTML;
cost = document.getElementById('cost').innerHTML;
date = document.getElementById('date').innerHTML;
pictureid = document.getElementById('pictureid').src;
}

function previousaccept(name,imagetitle,location,similarities,value,type,cost,date,pictureid)
{
document.getElementById('name').innerHTML = name;
document.getElementById('location').innerHTML = location;
document.getElementById('similarities').innerHTML = similarities;
document.getElementById('type').innerHTML = type;
document.getElementById('cost').innerHTML = cost;
document.getElementById('date').innerHTML = date;
window.alert(pictureid);
document.getElementById('pictureid').src = pictureid;
}
window.onload=initial();
function initial()
{
myvalues;
previousnames;
}

/*
function initial2()
{
myvalues;
previousnames();
}*/
4

2 に答える 2

0

これはあなたが望むことをすると思います。重要なのは、保存しようとしている変数のスコープが、関数がそれらすべてにアクセスできるようなものであることを確認することです。dataStoreこれを行うには、関数の開始時に空のオブジェクトを定義し、onload 関数内でonload他の 2 つの関数も定義します。格納されているすべてのデータを 1 つのオブジェクトに配置すると便利であり、命名の問題 (前の回答で指摘された window.location の問題など) を回避できます。

window.onload = function() {
    var dataStore = {};

    function getInitialData() {
        dataStore = {
            name: document.getElementById('name').innerHTML,
            imagetitle: document.getElementById('imagetitle').innerHTML,
            // and so on... 
        }
    }

    function resetData() {
        document.getElementById('name').innerHTML = dataStore.name;
        document.getElementById('imagetitle').innerHTML = dataStore.imagetitle;
        // and so on...
    }
    getInitialData();
    //... then later when you want to reset all the values
    resetData();
}​
于 2012-12-02T22:33:03.900 に答える