0

単純な関数コンストラクターがあり、プロパティの1つにDOM要素IDを割り当てたいと思います。これをコンストラクターの外部で行う場合は、IDを引用符で囲む必要がありますIE getElementById("whatever");

私のコンストラクターでは、これを行う必要があるかどうか、どのように追加するか、またはこれを正しくフォーマットしているかどうかがわかりません。

<form id="form">
<input type="text" id="bookText" value="Book">
</form>

<script>

function Item(itemName,itemDomID){
this.itemName = document.getElementById(this.itemDomID);   
};

var mybook = new Item(book,bookText);       // new object.


</script>
4

3 に答える 3

1

コンストラクターパラメーターは文字列である必要がありますか?
jsfriddleでこれを試してください

<form id="form">
<input type="text" id="bookText" value="Book">
</form>

​function Item(itemName,itemDomID){
    this.itemName = document.getElementById(itemDomID).value;   
};

var mybook = new Item("book","bookText");       // new object.
于 2012-09-28T06:50:23.463 に答える
1

単純な関数コンストラクターがあり、プロパティの1つにDOM要素IDを割り当てたいと思います。これをコンストラクターの外部で行う場合は、IDを引用符で囲む必要がありますIE getElementById( "whatever");

要素IDは文字列であり、オブジェクトプロパティに文字列を割り当てるには、関数は必要ありません。割り当てだけが必要です。

mybook.book = 'bookText';

変数を使用して値を渡す場合は、変数名を使用するだけです。式は、値を返すために評価されます。コンストラクターは次のようになります(元のコンストラクターへの変更に注意してください)。

function Item(itemName, itemDomID){

    this[itemName] = document.getElementById(itemDomID);   

}

itemNameリテラル文字列「itemName」ではなく、の値を新しいプロパティ名に割り当てるために角かっこを使用していることに注意してください。

したがって、コンストラクターを呼び出すときに、文字列値を渡すことができます。

var mybook = new Item('book', 'bookText');

値は関数内の変数に順番に割り当てられるためitemName、値「book」itemDomIDが割り当てられ、値「bookText」が割り当てられます。

document.getElementById('bookText')コンストラクター内で、新しいオブジェクトには、要素への参照であるか、nullそのIDを持つ要素が見つからない場合に、によって返される値を持つ「book」という名前のプロパティが与えられます。

于 2012-09-28T06:50:28.237 に答える
0
document.getElementById(this.itemDomID);

これにより、javascript オブジェクトが返されます。あなたはのように使うことができます

var refObj=document.getElementById(this.itemDomID);

var objName=refObj.id;

于 2012-09-28T06:37:10.597 に答える