Javascript获取元素值
这些解决scheme有什么区别吗?
// HTML <input id="theId" value="test" onclick="doSomething(this.id, this.value)" /> // Javascript function doSomething(id, value){ // ... }
要么
// HTML <input id="theId" value="test" onclick="doSomething(this.id)" /> // Javascript function doSomething(id){ var value = document.getElementById(id).value; // ... }
是的,最值得注意的是我不认为第二个会起作用(如果是的话,不是很便携)。 第一个应该没问题。
// HTML <input id="theId" value="test" onclick="doSomething(this)" /> // Javascript function(elem){ var value = elem.value; var id = elem.id; ... }
也应该工作
第二个function应该有:
var value = document.getElementById(id).value;
那么他们基本上是一样的function。
在第二个版本中,你传递从this.id
返回的string。 不是元素本身。
所以id.value
不会给你你想要的。
你需要通过这个元素。
doSomething(this)
然后:
function(el){ var value = el.value; ... }
注意:在某些浏览器中,如果你这样做,第二个浏览器就可以工作:
window[id].value
因为元素ID是全局属性,但这不是安全的 。
这是最有意义的只是传递这个元素,而不是再次获取它的ID。
传递对象:
doSomething(this)
您可以从对象中获取所有数据:
function(obj){ var value = obj.value; var id = obj.id; }
或仅传递id
:
doSomething(this.id)
获取对象并在该值之后:
function(id){ var value = document.getElementById(id).value; }