关于jquery 选择器的动态参数。

刚玩jquery 不久

    遇到项目里的checkbox功能需要-分组全选/反选/全不选的问题,需要对$()传递动态参数。一开始不怎么怎么弄。自己试了

$("#t"+$(this).val()).attr("checked",$(this).attr("checked"));,

 

结果只能选择第一项。无果,百度一下。无答案、

 

几分钟,发现,自己犯傻了。#只能取得 document唯一的id,也就是说结果只能有一个。遍历dom,找到第一个就直接返回。。。。。。。。。。。

换成

$("[id='t"+$(this).val()+"']").attr("checked",$(this).attr("checked"));

 这样就OK,

 

不过,这 样子,ID貌似泛滥了。。。

改成用name?好像也不行。name是用来给服务器传值的。

 

算了,自己定义个属性得。解决了

 

测试代码如下:

html

全/不选


 

javascript:

$("input.all").click(function() { $("input[type='checkbox']").attr("checked",$(this).attr("checked")==true?"checked":""); }); $("input.resever").click(function() { $("input[type='checkbox']").each(function(){ if ($(this).attr("checked")) { $(this).attr("checked",""); } else { $(this).attr("checked","checked"); } }); }); $("input.group").click(function() { $("[defName='t"+$(this).val()+"']").attr("checked",$(this).attr("checked")); }); $("button.ok").click(function() { var resultId=""; var resultName=""; $("input[name='selecter']").each(function(){ if ($(this).attr("checked")) { resultId += ","+$(this).attr("value"); resultName += ","+$(this).attr("title"); } }); alert(resultId.substring(1)); alert(resultName.substring(1)); });

 

 

$()参数就是个字符串嘛,也没啥的,想怎么拼就怎么拼。

 

你可能感兴趣的:(Javascript)