Как получить каждый td, содержащий его в таблице, используя Jquery - PullRequest
0 голосов
/ 11 августа 2011

Я генерирую таблицу динамически.

Я хочу получить все мои TD-контейнеры, кроме Thead-контейнеров.

Мой стол выглядит примерно так:

<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 #):

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

Я использовал приведенную ниже функцию JS при нажатии кнопки, но она не работает: (.

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. Пожалуйста, помогите мне решить проблему. Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 11 августа 2011

попробуйте это как код нажатия кнопки:

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 primary value of phone to create object of Telephone` class и поместите его в массив.Теперь вы можете делать все что угодно с содержимым массива.

PS: - вам нужно поставить атрибут name на свои переключатели (с таким же значением, как name='primary'.

0 голосов
/ 11 августа 2011

Попробуйте это

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());
        });
    //}
}
0 голосов
/ 11 августа 2011

не используйте <td> в вашем <thead> использовании <th>.

<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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...