0

javascript関数でオブジェクトデータにアクセスするにはどうすればよいですか? 私がしたいのは、htmlファイルから入力を取得し、入力テキストがjavascriptのオブジェクトの1つに===である場合、そのオブジェクトからいくつかのデータにアクセスして関数内で使用することです。

例えば:

2 つのテキスト入力と関数にアクセスするためのボタンを備えた html フォームがあります。そして、javascriptドキュメントには、データ「bob.age = 25」と「susan.age = 30」を持つbobとsusanという2つのオブジェクトがあります。そこで、bob.age + susan.age を計算する関数が必要です。しかし、フォームhtmlでボブとスーザンの入力を使用したいと思います。したがって、入力 bob と susan がある場合、関数で bob.age + susan.age を実行する必要があります

ここに私のHTMLフォームがあります:

<form name="mmForm">
       <label for="element1">E1</label>
       <input type="text" id="element1">
       <label for="element2">E2</label>
       <input type="text" id="element2">
       <input type="button" value="Calculate" onclick="procesForm_mm()">
       <div id="resultfield_mm">Result:</div>
   </form>

ここに私のJavaScript関数:

function procesForm_mm() {
var e1 = document.mmForm.element1.value;

var e2 = document.mmForm.element2.value;

result_mm = parseInt(e1) + parseInt(e2);

document.getElementById("resultfield_mm").innerHTML += result_mm;
}

これは私がアクセスしたいデータです:

var Fe = new Object();
Fe.denumire = "Fier";
Fe.A = 56;
Fe.Z = 26;
Fe.grupa = "VIIIB";
Fe.perioada = 4;
4

1 に答える 1

0

これを試してください(多くの推測が含まれます):

function procesForm_mm() {
    var e1 = document.mmForm.element1.value;
    var e2 = document.mmForm.element2.value;
    result_mm = parseInt(eval(e1).A) + parseInt(eval(e2).A);
    document.getElementById("resultfield_mm").innerHTML += result_mm;
}

var Fe = new Object();
Fe.denumire = "Fier";
Fe.A = 56;
Fe.Z = 26;
Fe.grupa = "VIIIB";
Fe.perioada = 4;

var Co = new Object();
Co.denumire = "Cobalt";
Co.A = 59;
Co.Z = 27;
Co.grupa = "IXB";
Fe.perioada = 4;

ここで動作することを確認してください: http://jsfiddle.net/KJdMQ/

JSeval関数の使用にはいくつかの欠点があることに注意してください: https://stackoverflow.com/a/86580/674700

より良いアプローチは、JS オブジェクトを配列に保持し、eval関数の使用を避けることです。

function procesForm_mm() {
    var e1 = document.mmForm.element1.value;
    var e2 = document.mmForm.element2.value;
    result_mm = parseInt(tabelPeriodic[e1].A) + parseInt(tabelPeriodic[e2].A);
    document.getElementById("resultfield_mm").innerHTML += result_mm;
}
var tabelPeriodic = [];

tabelPeriodic["Fe"] = new Object();
tabelPeriodic["Co"] = new Object();

var el = tabelPeriodic["Fe"];
el.denumire = "Fier";
el.A = 56;
el.Z = 26;
el.grupa = "VIIIB";
el.perioada = 4;

el = tabelPeriodic["Co"];
el.denumire = "Cobalt";
el.A = 59;
el.Z = 27;
el.grupa = "IXB";
el.perioada = 4;

ここで動作するのを見てください)

A注: これは化学アプリケーションのように見えます。フォームが化学元素の化学特性値 (つまり、標準原子量)を追加することになっていると想定しました。フォームは、JS オブジェクトの名前 (FeおよびCo) を入力として受け取ります。

于 2013-07-31T12:50:25.893 に答える