2016-08-21 3 views
0

HTMLコードjqueryのは、HTMLテーブルに

<table id="tablechkbx"> 
    <tr> 
     <td>CITY&nbsp;<input value="5" id="datacell" type="checkbox"></td> 
     <td>DATE OF BIRTH&nbsp;<input value="7" id="datacell" type="checkbox"></td> 
     <td>DESIGNATION&nbsp;<input value="10" id="datacell" type="checkbox"></td> 
     <td>EMAIL&nbsp;<input value="1" id="datacell" type="checkbox"></td> 
     <td>GENDER&nbsp;<input value="12" id="datacell" type="checkbox"></td> 
     <td>INCOME LEVEL&nbsp;<input value="8" id="datacell" type="checkbox"></td> 
     <td>INDUSTRY OF EMPLOY&nbsp;<input value="9" id="datacell" type="checkbox"></td> 
    </tr> 
    <tr> 
     <td>KIDS&nbsp;<input value="13" id="datacell" type="checkbox"></td> 
     <td>MARITAL STATUS&nbsp;<input value="11" id="datacell" type="checkbox"></td> 
     <td>MOBILE NUMBER&nbsp;<input value="2" id="datacell" type="checkbox"></td> 
     <td>NAME&nbsp;<input value="3" id="datacell" type="checkbox"></td> 
     <td>NIC NUMBER&nbsp;<input value="6" id="datacell" type="checkbox"></td> 
     <td>TELEPHONE NUMBER&nbsp;<input value="4" id="datacell" type="checkbox"></td>     
    </tr> 
</table> 

だとき、私は上記のコードから、チェックボックスの値を取得しようとしたが、それはショーのjQueryの

<script>      
     var tds; 
     $(document).ready(function(){ 
       $('#btnselectall').on('click',function(){     
        $('#tablechkbx').find('tr').each(function(){ 
         tds = $(this).find('td'); 
         for(var k=0;k<tds.size();k++){ 
          var data = tds[i]; 
          console.log(data.next("#datacell").val());       
         }       
        });      
       }); 
      }); 
</script> 

を各チェックボックスの値を選択しますTypeError: data.next is not a functionのようなエラーです。しかし、それはさておき、私はコメントで言及した問題からconsole.log(data);

+0

これ以上のHTMLはありますか、間違ったIDを選択していますか?あなたのテーブルは 'tablechkbx'というIDを持っていますが、あなたのセレクタは' '#tbcheckbox ''です。 – rdubya

+0

また、idを再利用するための無効なhtmlは、ページ上で一意である必要があります。だからあなたの入力に 'id =" datacell "の代わりに' class = "datacell"を使うべきです – rdubya

+0

正しい値は 'tbcheckbox'です。 htmlテーブルが非常に巨大なので、私は実際のテーブル構造からより小さなバージョンを作った。 – Elshan

答えて

1

として使用だときは、ブラケット表記法を使用して、配列のようなjQueryオブジェクトにアクセスすると、それは返すので、あなたがTypeError: data.next is not a functionを得ている理由は、すべてのtd要素を出力しますその位置のDOM要素であり、jQueryオブジェクトではありません。 var data = tds[i];var data = tds.eq(i);に変更すると、jQueryオブジェクトが取得されます。

ループオーバーするもう1つの方法は、tds.each(callback)docs)です。

追加の問題は、あなたが探しているの入力がTDない兄弟の子であるので、(あなたはjQueryオブジェクトであることをdataを修正したと仮定した場合)data.children()の代わりdata.next()をコールする必要があるだろうということです。

+0

そして私は 'console.log(data.children()。valueOf( 'input#datacell')。val());を使用しました。 ' – Elshan

関連する問題