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