javascript - 我可以把这个 JQuery 语句写得更干净吗?

标签 javascript jquery

所以我有以下内容:

var box = $(".MyCheckBox");

if (box[0].checked)
{
    // Do something
}
else
{
    // Do something else
}

有没有更好的方法使用过滤器或其他东西来做到这一点?

我知道我可以去:

$(".MyCheckBox")
    .filter(function(index) {
         return this.checked;
     })
    .each(function() {
         // do something
     });

但是我需要在 else 语句中做一些事情……更简单的方法吗?谢谢!

最佳答案

您可以使用内置的 :checked 选择器:

$(".MyCheckBox:checked").each(function() {
  //Do something with checked ones..
});
$(".MyCheckBox:not(:checked)").each(function() {
  //Do something with unchecked ones..
});

或在每个与您所拥有的相似的项中进行过滤:

$(".MyCheckBox").each(function() {
  if($(this).is(":checked")) {
    //Do something with checked ones..
  } else {
    //Do something with unchecked ones..
  }
});

或者如果说您想切换一个类,然后使用不同的方法,这会将 active 类提供给选中的类:

$(".MyCheckBox").each(function() {
  $(this).toggleClass("active", $(this).is(":checked"));
});

更新
如果您只想要原始速度,请根据评论:

$(".MyCheckBox").each(function() {
  if(this.checked) {
    //Do something with checked ones..
  } else {
    //Do something with unchecked ones..
  }
});

关于javascript - 我可以把这个 JQuery 语句写得更干净吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541320/

相关文章:

javascript - 防止可拖动的项目移出容器?

javascript - 无法在数组中循环 jQuery 对话框

javascript - 如何允许我的窗口打开并显示用户输入的文本?

javascript - 用于验证印度货币的正则表达式模式

javascript - sails js,示例代码如主页所示

javascript - 动态地将 HTML 字符串插入到文档的 HEAD 中

javascript - 在 vue.js 中使用语言环境前缀路由(使用 vue-i18n)

javascript - 如何在滚动时停止动画?

javascript - 需要使用 JavaScript 修改文件名和位置

javascript - 不稳定的 jQuery UI 拖动时可排序