HTML中的Javascript对象和参数引用
Javascript object and parameters reference from the HTML
我有这样的想法,我想通过使用函数参数和对象来实现,但它没有按预期工作。
第一个HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>Main</title>
<script type="text/javascript" src="scripting.js"></script>
</head>
<body>
<div >
<form id='radio'>
<input type="radio" name="choice" onClick="text(this.value)" value="list">
<input type="radio" name="choice" onClick="text(this.value)" value="box"></form>
<h1 id="title">" "</h1>
<p id="description"></p>
</div>
</body>
</html>
这是非常直接的,我将使用单选按钮的值作为javascript text()函数的参数。
这是我的JavaScript代码:
var choices = document.getElementsByName('choice');
var list = { a : 1 , b : 'Hi' };
var box = { a : 2, b : 'Hello'};
function text(choice) {
var i;
for (i = 0; i < choices.length; i += 1)
{
if(choices[i].checked)
{
document.getElementById('title').innerHTML = choice["a"];
document.getElementById('description').innerHTML = choice["b"];
}
}
}
我从HTML代码中创建了两个与单选按钮同名的对象。接下来,在我的函数中,做了一个for循环来检查单击了哪个单选按钮。根据公式,Head和Paragraph标记应在各自的标记中显示对象内容。当我只是将参数作为一个普通值输入时,它会打印出单选按钮的值。但是,我使用该参数作为对对象变量的引用。示例:
function parameter choice = "list";
document.getElementById('title').innerHTML = choice["a"];
而不是显示值。我得到了";未定义的";因此
有人能帮忙吗?
处理此问题的两种方法。如果你保留当前变量,现在它们将是全局的(在窗口对象中),那么使用这个:
var list = { a : 1 , b : 'Hi' };
var box = { a : 2, b : 'Hello'};
var choice = 'list';
console.log(window[choice]);
请注意,我们将选择放在括号中,因为列表和框是窗口的属性。
由于choice等于"list",因此window[choice]、window['list']和window.list都引用同一个名为list的对象。
另一种方法是将列表和框放在对象中:
var types = {
list: { a : 1 , b : 'Hi' },
box: { a : 2, b : 'Hello' }
};
var choice = 'list';
console.log(types[choice]);
我更喜欢这种方法,而不是把所有东西都放在全局/窗口对象中。
相关文章:
- 如何存储包含参数的JS函数引用
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- 参数和引用
- 如何避免在将索引作为函数的参数发送时引用for循环中的最后一个索引
- 在JavaScript中通过引用传递参数
- 我们是否可以安全地从套接字参数的回调中分配对象引用
- 在 javascript 中通过引用传递一个对象参数
- 如何在 JavaScript 中传递参数,确保它的引用存在
- 作为参数传递到函数中的对象的引用是否会更改
- 在变量引用中使用函数参数
- 如何使用函数参数引用同名变量
- 将参数作为引用传递以获取 JSON 属性
- 停止对作为函数参数传递到新列表的对象引用
- JavaScript 参数对象引用未知
- 什么是 ?参数,以这些脚本和样式表引用
- 解构参数并保留对它的引用
- HTML中的Javascript对象和参数引用
- 重构:匿名函数到命名函数,参数引用
- javascript中的参数引用不一致
- 我可以依靠这个参数引用行为,跨平台