我有一个以obj为参数的方法。我不能改变签名,我想重用它。我必须将一个元素作为对象发送到此参数,因此不确定如何执行此操作。有人能告诉我吗?
function someUsefulFunction(obj) {
var id = obj.id;
//do other stuff
}
{
...
var myElement = $('#myElement');
someUsefulFunction(myElement); //getting error "TypeError: obj.id is undefined"
...
}
答案 0 :(得分:4)
var myElement = document.getElementById('myElement');
看起来像是期待一个dom节点,所以你可以用老式的普通js方式做到这一点。
或者如果你想用jquery做,
var myElement = $('#myElement').get(0);
答案 1 :(得分:4)
您需要更改为:
var id = obj[0].id;
function someUsefulFunction(obj) {
var id = obj.id;
console.log(id);
}
var myElement = $('#myElement').get(0);
someUsefulFunction(myElement);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myElement"></div>
替代方案你可以:
var myElement = $('#myElement').get(0);
function someUsefulFunction(obj) {
var id = obj[0].id;
console.log(id);
}
var myElement = $('#myElement');
someUsefulFunction(myElement);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myElement"></div>