Как добавить последовательность классов к трем объектам в одном - PullRequest
1 голос
/ 29 октября 2010

Мне нужно добавить:

  • идентификатор таблицы в моей форме
  • нумерованная последовательность классов с определенным количеством TD в каждом следующем TR в этой таблице (три td в данном случае)

У меня есть следующая html-модель:

<form id="myform">
<table>
 <tr>
  <td>some text</td>
  <td>some text</td>
  <td>some text</td>
</tr>
 <tr>
  <td>some text</td>
  <td>some text</td>
  <td>some text</td>
</tr>
</table>
</form>

Мне нужно, чтобы это было так после применения jquery:

<form id="myform">                   <!--no changes-->
 <table id="table1">                 <!--changed-->
  <tr>       
   <td class="td1">some text</td>    <!--changed-->
   <td class="td2">some text</td>    <!--changed-->
   <td class="td3">some text</td>    <!--changed-->
  </tr>
  <tr>       
   <td class="td1">some text</td>    <!--changed-->
   <td class="td2">some text</td>    <!--changed-->
   <td class="td3">some text</td>    <!--changed-->
  </tr>
 </table>
</form>

Ответы [ 4 ]

2 голосов
/ 29 октября 2010

Давайте попробуем:

$(function(){
    $('#myform').find('table').each(function(i,e){
       var $table = $(e);

       $table.attr('id', 'table' + (parseInt($table.index(),10)+1));

       $table.find('tr').each(function(i2,e2){
          var $tr = $(e2);

          $tr.find('td').each(function(i3, e3){
             var $td = $(e3);

             $td.addClass('td' + (parseInt($td.index(),10)+1));
         });
       });
    });
});

Пример: http://www.jsfiddle.net/YjC6y/43/

Это должно работать довольно обобщенно.В любом случае, я не уверен, что это лучший способ сделать это, но я уверен, что элегантные и умные люди в Stackoverflow исправят это, если нет.

1 голос
/ 29 октября 2010
$('#myform table').each(function(i, v) {
   $(v).attr('id','table' + (i + 1)).find('tr').each(function(idx, val) {
        $(val).children().each(function(index,element) {
            $(element).addClass('td' + (index + 1));
        });
   });
});
1 голос
/ 29 октября 2010

Здесь код, который вы хотите добавить в свой скрипт

$("#myform table").attr("id", "table1");

$("#myform table tr").each(function(){
    $("td:eq(0)",$(this)).attr("id", "td1");
    $("td:eq(1)",$(this)).attr("id", "td2");
    $("td:eq(2)",$(this)).attr("id", "td3");
});
0 голосов
/ 29 октября 2010
(function($) {
    var id = 'myid';
    var class_prefix = 'myclass-';
    $("#myform").find('table')
    .attr('id', id)
    .find('tr').each(function(i,el) {
        row = $(el);
        row.children('td').each(function(k, col) {
            $(col).addClass(class_prefix + k);
        });
    }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...