在我的javascript代码中,我正在创建一个<object>
,如此:
var myObject = document.createElement('object');
然后,我向这个对象添加一些参数,以便这些参数反映在我的html中。
我可以这样做,但是在添加了越来越多的参数后,这段代码变得非常混乱和重复。
var param1 = document.createElement('param');
param.setAttribute('name', 'myName');
param.setAttribute('value', 'myValue');
myObject.appendChild(param1);
是否有更好的方法为此对象创建和添加参数?
如果它有任何区别,这是一个activeX控件对象。
谢谢!
答案 0 :(得分:0)
您可以将该代码放入addParameters
函数中,该函数接受一个对象并使用for in
循环来添加对象中的所有属性。
答案 1 :(得分:0)
有多种方法可以添加属性
param1.name=myName;
param1[name]=myName;
您可以使用for in
通过循环查看属性是否存在于对象中,并确保使用hasProperty
将其限制为对象自己的属性。
答案 2 :(得分:0)
有一个令人兴奋的自助餐选择:
elem.id = 'NewId';
elem.value = 'NewValue';//etc...
elem.style.width = '100%';
或者,如果您只创建一个对象:
elem = '<div id="Foo" class="bar blackBlock andSomeOtherClass">InnerText or innerHTML go here</div>';
其中,在大多数情况下比手动创建它更快......:)
如果没有,这是我不时使用的一个小功能:
function createAssign(elem,attr)
{
var i;
elem = (typeof elem === 'object' ? elem : document.createElement(elem));
if (typeof attr !== 'object')
{
return elem;
}
for (i in attr)
{
if (attr.hasOwnProperty(i))
{
elem[i] = (typeof attr[i] === 'object' ? createAssign(elem[i],attr[i]) : attr[i]);
}
}
if (this !== window && this.appendChild)
{
this.appendChild(elem);
return true;
}
return elem;
}
var el = createAssign('div',{id:'Foo',innerHTML:'bar',style:{width:'100%'}});
//or append directly:
createAssign.apply(document.body,['div',{id:'Foo',innerHTML:'bar',style:{width:'100%'}}]);
答案 3 :(得分:0)
像这样的东西会这样做
function addParams(obj, paramsObj){
for(vals in paramsObj)
{
obj.setAttribute(vals, paramsObj[vals])
}
}
var myObject = document.createElement('object');
var paramsObj = {
"value":"myValue"
"name":"myName"
};
addParams(myObject, paramsObj);