HTML 代码:
<form>
<input type="checkbox" name="newsletter" checked="checked" value="Daily" />
<input type="checkbox" name="newsletter" value="Weekly" />
<input type="checkbox" name="newsletter" checked="checked" value="Monthly" />
</form>
jQuery 代码:
$("input:checked")
结果:
[ <input type="checkbox" name="newsletter" checked="checked" value="Daily" />, <input type="checkbox" name="newsletter" checked="checked" value="Monthly" />]
var check = $("input:checked") //得到所有被选中的checkbox
var actor_config //定义变量
check.each(function(i){//循环拼装被选中项的值
actor_config = actor+','+$(this).val()
})
alert(actor_config.substr(9)+',')
通过以下js代码去获取选中项的值,在IE7中可以正确取得选中项的值,但在IE8中却得不到选中项的值,同样在Firefox 3.5.3下也得不到值,但公司同事在Firefox其他较低版本下能正确得到值,IE6下也没有问题,⊙﹏⊙b汗
$('#permissionList-body input[name="checkboxes"][checked]').each(function(i){
alert($(this).val())
})
但是把技术代码修改为:
$('#permissionList-body input[name="checkboxes"]').each(function(i){
if(this.checked)alert($(this).val())
})===========================================================================$('#permissionList-body input[name="checkboxes"][checked]')$('#permissionList-body input[name="checkboxes"][checked='checked']')这两种写法支持IE$('#permissionList-body input[name="checkboxes"][checked='true']')
这种支持firefox
没有找到好的解决方法,只有加if(this.checked)判断了 jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关 获取一组radio被选中项的值var item = $('input[@name=items][@checked]').val()获取select被选中项的文本var item = $("select[@name=items] option[@selected]").text()select下拉框的第二个元素为当前选中值$('#select_id')[0].selectedIndex = 1radio单选组的第二个元素为当前选中值$('input[@name=items]').get(1).checked = true获取值:文本框,文本区域:$("#txt").attr("value");多选框checkbox:$("#checkbox_id").attr("value");单选组radio: $("input[@type=radio][@checked]").val()下拉框select: $('#sel').val()控制表单元素:文本框,文本区域:$("#txt").attr("value",'')//清空内容 $("#txt").attr("value",'11')//填充内容多选框checkbox: $("#chk1").attr("checked",'')//不打勾 $("#chk2").attr("checked",true)//打勾 if($("#chk1").attr('checked')==undefined) //判断是否已经打勾单选组radio:$("input[@type=radio]").attr("checked",'2')//设置value=2的项目为当前选中项下拉框select: $("#sel").attr("value",'-sel3')//设置value=-sel3的项目为当前选中项$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option$("#sel").empty();//清空下拉框// 清空所有复选框选项 $(":checkbox").attr("checked","")
这就是“为未来元素添加事件”的方法了,
jquery里为未来元素添加事件的原理很简单,既然这个元素是未来的,那么我们可以把事件绑定在已经存在的元素上,然后在发生点击的时候,再来判断所点击的对象,是否为我们要的对象,然后再触发事件。
$("div#id").on("click","button.do",function(){//具体的内容
})
上面这段代码解释起来就是,给div#id绑定一个click事件,并且触发事件的对象为button.do时,开始执行具体的内容。
不管button.do是否为已经存在的,还是未来添加的,都能执行。
对于你的问题,同理就能解决,
$("input[type='checkbox']").click
你的这句,把事件绑定到最近的父元素里,不要绑在离“太远”的父元素上,影响代码的执行效率,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)