我有点新的jQuery的。我在用下面的代码工作的问题,特别是复位键,问题与检测默认的HTML checked属性的复选框
<script>
$(function()
{
$(document).ready(function()
{
$("input[type=checkbox][checked]").each(
function()
{
var cell = $(this).closest('td');
if($(this).attr('checked'))
{
cell.toggleClass('check');
}
});
});
$('#bay :checkbox').click(function()
{
var cell = $(this).closest('td');
cell.toggleClass('check');
}).change();
$('#reset').click(function()
{
$('#bay input[type=checkbox]').each(function()
{
var cell = $(this).closest('td');
if ($(this).is('checked'))
{
//alert("yes");
cell.addClass('check');
}
else
{
cell.removeClass('check');
//alert("no");
}
});
});
});
</script>
<input type="checkbox" checked>Blah
对于被点击复位按钮,当某种原因,该脚本仅执行cell.addClass if语句。基本上,重置按钮用作还原,如果HTML代码中没有默认属性,则应从每个中删除添加的类#check。
我想这样做输入复选框的检查与检查属性的低效的方法,和一个没有,跑在FF和铬细,但在IE失败。只有当您按两次重置按钮时,它才会起作用。
$('#reset').click(function()
{
$("input[type=checkbox][checked]").each(
function()
{
var cell = $(this).closest('td');
cell.addClass('check');
});
$("input[type=checkbox]:not([checked])").each(
function()
{
var cell = $(this).closest('td');
cell.removeClass('check');
});
});
任何帮助将不胜感激!
编辑:每请求,以下是HTML代码的样品重量/工作(但低效的)jQuery代码http://jsfiddle.net/uxjCT/9/。
编辑2:*我简化了代码的“重置”部分,但它仍然不能在IE中工作。任何人都知道这是否是一个无法解决的IE问题?从本质上讲,我试图让复位功能,恢复到缺省的HTML“选中”属性,对于已经在HTML属性,与样式表一起输入复选框。 IE是目前唯一的一个痛苦的罪魁祸首。
$('#reset').click(function(){
$('#bay input[type=checkbox]').each(function()
{
var attr = $(this).is("[checked]");
var cell = $(this).closest('td');
if (typeof attr !== 'undefined' && attr !== false)
{
alert("checked");
cell.addClass('check');
}
else
{
alert("unchecked");
cell.removeClass('check');
}
});
});
出于某种原因,var attr = $(this).is("[checked]");
不会拿起HTML中“选中”属性,但是会拿起如果复选框已被选中,这可能比默认的HTML属性不同。
同样,任何帮助,将不胜感激!
Demo'd代码:http://jsfiddle.net/uxjCT/55/
可否请你发布一些HTML标记? – rahul 2011-05-03 05:58:19