如何将DOM元素ID分配给Javascript函数构造函数中的属性

时间:2012-09-28 06:34:44

标签: javascript dom

我有一个简单的函数构造函数,并希望将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>

3 个答案:

答案 0 :(得分:1)

你的构造函数参数应该是字符串吗?
try this in 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.

答案 1 :(得分:1)

  

我有一个简单的函数构造函数,并且想要分配一个DOM元素   ID到其中一个属性。当这是在a。之外完成的   构造函数你必须把ID放在引号IE中   getElementById(“what”);

元素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”。

在构造函数中,新对象将被赋予一个名为“book”的属性,其值为document.getElementById('bookText')返回的值,该值将是对元素的引用,或null如果找不到具有该ID的元素。

答案 2 :(得分:0)

document.getElementById(this.itemDomID);

这将返回javascript对象。你可以使用像

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

var objName = refObj.id;