1、想通过each函数来遍历所有的input的value值。代码如下:
function SelectAll(o){
var html = '';
if( $(o).find("#select_all2").attr("checked") ){
$(o).parent("p").siblings(".boxright_all").find("input").attr("checked",true);
$(o).parent("p").siblings(".boxright_all").find("input").each(function(){
if($(this).attr("check") == true||$(this).attr("check") == "checked")
{
html += $(this).val();
alert("新的value");
}
});
}else{
$(o).parent("p").siblings(".boxright_all").find("input").removeAttr('checked');
}
alert(html);
}
但是html显示的是空的内容,很奇怪。。于是,我就怀疑可能是each函数中的if语句有问题,然后我就注释掉if语句,换成一个简单的显示语句,如下:
function SelectAll(o){
var html = '';
if( $(o).find("#select_all2").attr("checked") ){
$(o).parent("p").siblings(".boxright_all").find("input").attr("checked",true);
$(o).parent("p").siblings(".boxright_all").find("input").each(function(){
alert($(this).val());
/* if($(this).attr("check") == true||$(this).attr("check") == "checked")
{
html += $(this).val();
alert("新的value");
}
*/
});
}else{
$(o).parent("p").siblings(".boxright_all").find("input").removeAttr('checked');
}
//alert(html);
}
结果能显示出内容。看来结果很明显,是each中的if语句出问题了。
3、和正确的代码一比较,才发现attr("check")是不对的,正确的应该是attr("checked")最终正确的应该是
function SelectAll(o){
var html = '';
if( $(o).find("#select_all2").attr("checked") ){
$(o).parent("p").siblings(".boxright_all").find("input").attr("checked",true);
$(o).parent("p").siblings(".boxright_all").find("input").each(function(){
if($(this).attr("checked") == true||$(this).attr("checked") == "checked")
{
html += $(this).val();
html += ";";
}
});
}else{
$(o).parent("p").siblings(".boxright_all").find("input").removeAttr('checked');
}
alert(html);
}