如何将jquery对象传递给函数?

21 jquery

我正在尝试编写通用代码

var rodd = $('#checkBox');
Run Code Online (Sandbox Code Playgroud)

我想将rodd传递给函数并检查它是否被检查

Callme(rodd);

$(rodd).click(function() {
Callme(this);
});

function Callme(rodd){
if(this.checked){
// do some behavior
}
}
Run Code Online (Sandbox Code Playgroud)

cle*_*tus 16

如果rodd是jQuery对象:

function Callme(rodd) {
  if (rodd.is(":checked")) {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

要么:

function Callme(rodd) {
  if (rodd[0].checked) {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ius 5

这应该工作:

//Assuming rodd is a jquery element
Callme(rodd);

rodd.click(function() {
  Callme($(this));
});

function Callme(rodd){
  if(this.is(":checked"){
    // do some behavior
  }
}
Run Code Online (Sandbox Code Playgroud)

请记住,事件侦听器指向DOM元素,而不是jquery元素.因此,您需要使用$(this)表达式将其转换为jquery元素.