0

如何在 javascript 函数中访问一些对象数据?我要做的就是从 html 文件中获取一些输入,然后如果输入文本是 === 到我在 javascript 中的一个对象,我想从该对象访问一些数据以在我的函数中使用。

例如:

我有带有 2 个文本输入和一个用于访问该功能的按钮的 html 表单。在 javascript 文档中,我有两个名为 bob 和 susan 的对象,其数据为“bob.age = 25”和“susan.age = 30”。所以我想要一个计算 bob.age + susan.age 的函数。但我想在我的表单 html 中使用 bob 和 susan 的输入。因此,当我有输入 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 对象(FeCo)的名称作为输入。

于 2013-07-31T12:50:25.893 回答