2012-06-13 150 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(); 

不知道這是不是你試圖做的事情。