0

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

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

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

于 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 回答