2012-06-13 153 views
-1

我有一个示例代码:如何从标签标签获取名称?

<ul> 
    <li> 
     <input type="checkbox" value="" name="" id="" class="chk"> Test  
     <ul> 
      <li> 
       <input type="checkbox" value="1" name="modem_id[]" id="input_1" class="chk1"><label>Test 1</label> 
      </li> 
      <li> 
       <input type="checkbox" value="2" name="modem_id[]" id="input_2" class="chk1" checked="checked"><label>Test 2</label> 
      </li> 
     </ul> 
    </li> 
</ul> 

和jQuery

jQuery('.chk').click(function(){ 
    if (jQuery(this).is(':checked')) { 
     jQuery(this).parent().find('input:checkbox').attr('checked', true); 
     var val_id = []; 
     var val_name = []; 
     jQuery('input:checkbox[id^=input_]:checked').each(function(i){ 
      val_id[i] = jQuery(this).val(); 
      val_name[i] = jQuery(this).parent().val(); 
      alert(val_id, val_name); 
     }); 
     } 
}); 

我已经得到val_id,但val_name是错误,如何从

回答

0
var val = []; 
var name = []; 
jQuery('input:checkbox[id^=input_modem_]:checked').each(function(i){ 
    val[i] = jQuery(this).val(); 
     name[i] = jQuery(this).parent().find('label').html(); 
}); 
for(var k=0; k<val.length; k++) { 
    // working this alert 
    alert(val[k]); // alert(name[k])  
} 
0

的jQuery(这).attr得到名称( “名称”);

应该得到当前复选框的名称

0

尝试:

jQuery('.chk').click(function(){ 
    if (jQuery(this).is(':checked')) { 
     jQuery(this).parent().find('input:checkbox').attr('checked', true); 
     var val_id = []; 
     var val_name = []; 
     jQuery('input:checkbox[id^=input_]:checked').each(function(i){ 
      val_id[i] = jQuery(this).val(); 
      val_name[i] = jQuery(this).attr("name");// i change this line 
      console.log(val_id, val_name);// alert() will not show array, see console 
     }); 
     } 
});​ 

演示http://jsfiddle.net/2SNQb/

1

,如果你想获得标签标签内的文本到下一输入复选框,请尝试更改此:val_name[i] = jQuery(this).parent().val();

到此

val_name[i] = jQuery(this).parent().find('label').html(); 

不知道这是不是你试图做的事情。