在定义一个函数时,您如何决定该函数是获取作为参数传递的 HTML 元素还是使用它getElementById
?一种方式比另一种更快吗?我知道将事物作为参数传递会增加可重用性,但有时很难看出函数是否会在另一段代码中使用。
只是为了澄清而不是使用getElementById
我会有这样的东西<input type="text" name="colour" onkeyup="myFunction(this.value)" />
在定义一个函数时,您如何决定该函数是获取作为参数传递的 HTML 元素还是使用它getElementById
?一种方式比另一种更快吗?我知道将事物作为参数传递会增加可重用性,但有时很难看出函数是否会在另一段代码中使用。
只是为了澄清而不是使用getElementById
我会有这样的东西<input type="text" name="colour" onkeyup="myFunction(this.value)" />
为了灵活起见,您可以制作可以采用以下任一功能的函数:
function whatever( element ) {
if (typeof element === 'string')
element = document.getElementById( element );
// ... do stuff ...
}
从功能上讲,如果您在调用函数之前调用 getElementById 并传递结果,或者从函数内部传递结果,那么这并没有太大区别。通过将元素传递给函数有一点额外的灵活性,因为您还可以使用其他选择器(除了 id)来查找您的元素。
始终传递对象,而不是 ID。传递对象就像给你一本书。传递 ID 是向您显示一本书的名称,然后将这本书放回图书馆并要求您找到它。
没有理由每次都搜索元素。