2011-08-11 12 views
-1

私は動的にテーブルを生成しています。Jqueryを使用してテーブル内の各tdコンテナをフェッチする方法

私はテッド封筒を除いて、私のすべてのTDの封じ込めを取りに行きたいです。

<Html> 
<table id="tblPhone"> 
    <thead> 
    <tr> 
     <th> Type </th> 
     <th> Primary </th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td> Gen </td> 
     <td> <input type="radio" CHECKED /> </td> 
    </tr> 
    <tr> 
     <td> Mob </td> 
     <td> <input type="radio" /> </td> 
    </tr> 
.... 
.... 
    </tbody> 
</table> 
</Html> 

私は私の下のクラスに記入&データをフェッチする必要があります(C#の):私はJS機能の下に使用されまし

class TelephoneType 
{ 
    public string Type; 
    public bool Primary; 
} 

私のテーブルには、次のようになりますボタンをクリックしても機能しない:(。

function RetriveTelephoneData() { 

    var obj = $("#tblPhone"); 

    var hasTH = obj.find("thead").size() > 0; 
    var hasTBody = obj.find("tbody").size() > 0; 

    if (obj.is("table") && !hasTH) { 
     var widths = []; 

     // capture widths before rearranging 
     obj.find("tr td").each(function(i) { 
      widths.push($(this)); 
     }); 
    } 
} 

私はJqueryを初めて使用しています。 e問題を解決する。 Thxを事前に入力してください。

+0

いけない、私は:( – Biki

+0

を入力として、私のテーブルがレンダリングされていない理由を知っています。これはjavascriptではなく、Javaのように見えます。 –

+1

コードボタンを使用してください(エディタで '{} 'ボタンで表されます) –

答えて

1

は、あなたのボタンクリックのコードとしてこれを試してください:すべての

function Telephone(type,primary) 
{ 
    this.Type=type; 
    this.Primary=primary 
} 

function RetriveTelephoneData(){ 
    var phones=[]; 
    $("table#tblPhone > tbody > tr").each(function(){ 
    var tds=$(this).find("td"); 
    var t=new Telephone($(tds[0]).text(), $(tds[1]).find("input:radio").is(":checked")); 
    phones.push(t); 
} 

まず値をキャプチャするJSクラスを作成します。次にtbodyのすべての行をループし、type' andプライマリvalue of phone to create object of Telephone`クラスを見つけて配列にプッシュします。これで、配列の内容で好きなことをすることができます。

PS: - あなたは入れてname属性をあなたのラジオボタンの上に(同じ値でname='primary'のように必要

0

<th><td>を使用しないでください。

<table> 
    <thead> 
    <tr> 
     <th>Column1</th> 
     <th>Column2</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td> 0,1</td> 
     <td> 1,1</td> 
    </tr> 
    </tbody> 
</table> 

等...

var allTd = $('td'); 
+0

オタクのために申し訳ありません、私は同じ編集しました。 – Biki

0

試してみてください。この

function RetriveTelephoneData() { 

    //var obj = $("#tblPhone"); 

    //var hasTH = obj.find("thead").size() > 0; 
    //var hasTBody = obj.find("tbody").size() > 0; 

    //if (obj.is("table") && !hasTH) { 
     var widths = []; 

     // capture widths before rearranging 
     $("#tblPhone").find("td").each(function(i) { 
      widths.push($(this).width()); 
     }); 
    //} 
} 
関連する問題