2

In my javascript code, I'm creating an <object> like so:

var myObject = document.createElement('object');

Then, I to add some parameters to this object, so that these are reflected in my html.

I can do it like this, but after adding more and more paremeters, this code gets really messy and repetitive.

var param1 = document.createElement('param');
param.setAttribute('name', 'myName');
param.setAttribute('value', 'myValue');
myObject.appendChild(param1);

Is there a better way to create an and add parameters to this object?

If it makes any difference, this is an activeX control object.

Thanks!


You need to set IIS to run ASP.Net for .js files.

4

4 に答える 4

0

addParametersそのコードを、オブジェクトを受け取り、ループを使用してオブジェクトfor inのすべてのプロパティを追加する関数に入れることができます。

于 2012-09-14T14:11:07.993 に答える
0

プロパティを追加するには複数の方法があります

1

param1.name=myName;

2

param1[name]=myName;

また、プロパティがオブジェクトに存在するかどうかをループして確認し、オブジェクト独自のプロパティに制限するためにfor in使用することを確認できます。hasProperty

于 2012-09-14T14:16:21.520 に答える
0

あなたに開かれたオプションのエキサイティングなビュッフェがあります:

elem.id = 'NewId';
elem.value = 'NewValue';//etc...
elem.style.width = '100%';

または、1 つのオブジェクトのみを作成する場合:

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%'}}]);
于 2012-09-14T14:18:08.930 に答える
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);
于 2012-09-14T14:21:21.520 に答える