jQuery:在文档加载检查中是否选中了复选框并执行功能

时间:2011-08-19 20:30:36

标签: javascript jquery

我很少<li>个,每个<li>都有一个复选框,其值保存在数据库中。在文档加载时,选中了复选框的<li>,我想添加一个类'。完成'

我试过了:

if (currentTODO.find('.status').is(":checked")) {
            currentTODO.find('.text').addClass("done");
            alert('Test.');
    }

但它只有在点击功能,mousemove等下使用但在文档加载时才有效。此外,如果我在文档加载下有这段代码,没有其他工作。

我希望有人可以帮助我。

非常感谢

3 个答案:

答案 0 :(得分:2)

这样的事情:

$('input[type="checkbox"][checked="checked"]').parent().addClass('done');

http://jsfiddle.net/SBMEm/

修改:这可能更接近您的尝试:

$('li').filter(function() {
    return $(this).find('input').is(':checked');
}).addClass('done');

http://jsfiddle.net/SBMEm/7/

对于任何处理文档加载的问题我都没有问题。

编辑:顺便说一句,与基于jQuery的解决方案一样,您可以在CSS中执行此操作:

input:checked:after {
    margin-left: 20px;
    content: "Done";
    display: block;
}

http://jsfiddle.net/3SRQd/

除非您有兴趣以编程方式执行其他操作,或者由于其他原因需要实际使用该类。

额外修改:这个怎么样? http://jsfiddle.net/EDs3N/12/(顺便说一下,我要回家了。)

答案 1 :(得分:0)

你需要在这里调用你的功能

$(document).ready(function()
{
   currentTODO.find('.status').is(":checked")) {   //or whatever code yo are using
            currentTODO.find('.text').addClass("done");
            alert('Test.');
};

答案 2 :(得分:0)

为什么不在文档加载时检查

function check_checkbox () {
  if (currentTODO.find('.status').is(":checked")) {
            currentTODO.find('.text').addClass("done");
            alert('Test.');
    }
}

$(document).ready(function () {
   check_checkbox()
}

或者如果你在doc ready中定义它,你不应该这样做,但如果你做了

$(document).ready(function () {
  function check_checkbox () {
    if (currentTODO.find('.status').is(":checked")) {
      currentTODO.find('.text').addClass("done");
      alert('Test.');
    }
  }()
}