无法将带有文本索引的数组转换为对象

时间:2015-12-30 06:31:39

标签: javascript

我有一个对象应该只显示一个文本框,其中包含值“newtext”。我想通过传递一个对象作为对象构造函数(函数名称y)的参数,我可以将1注入文本框。如何以这种方式添加文字?

将来我会有多个文本框,我想根据来自外部数组的值填充构造函数来填充它们。

<div ID='x'></div>
<script>
function y(imp){
  this.t=[];
  this.f=document.createElement('FORM');
  this.t['text']=document.createElement('INPUT');
  document.getElementById('x').appendChild(this.f);
  this.f.appendChild(this.t['text']);
  this.t['text'].value=imp['text'].value; //tried overriding the textbox value with value from inbound parameters.
}
var add=[];
add['text'].value='newtext'; // Tried to set textbox value here but failed
var z=new y(add);
</script>

2 个答案:

答案 0 :(得分:0)

您的代码几乎是正确的。问题是添加数组未初始化,因此添加[&#39; text&#39;]不是文本框而是空值。 为此,您必须初始化添加[&#39; text&#39;]为INPUT字段或在那里设置文本值

<div ID='x'></div>
<script>
function y(imp){
  this.t=[];
  this.f=document.createElement('FORM');
  this.t['text']=document.createElement('INPUT');
  document.getElementById('x').appendChild(this.f);
  this.f.appendChild(this.t['text']);
  this.t['text'].value=imp['text']; //tried overriding the textbox value with value from inbound parameters.
}
var add=[];
add['text']='newtext'; // Tried to set textbox value here but failed
var z=new y(add);
</script>

答案 1 :(得分:0)

我想我明白了。我不得不制作一个包含&#34;值&#34;参数。这段代码:

function val(v){this.value=v}
var arr=[];
arr['width']=new val(64);

将arr [&#39; width&#39;]。值设置为64。