Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Селектор для колонок (https://javascript.ru/forum/jquery/22417-selektor-dlya-kolonok.html)

Решатель 18.10.2011 20:28

Селектор для колонок
 
Здравствуйте, подскажите пожалуйста, как выбрать определенную колонку(все td и th) селектором jQuery? Вариант с прописыванием классов каждой ячейке слишком муторный...

Serg_pnz 18.10.2011 20:49

Если ячейки не объединены, то по номеру в потоке.

DjDiablo 18.10.2011 20:58

У меня нет никакого решения, но я восхищён красотой задачи :)

Но если подумать то
1) как насчёт http://jquery-docs.ru/traversing/filter/

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1251" /> 
<title></title> 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 


<script type="text/javascript"> 

  $(document).ready(function(){        
     $("tr td").filter(function (index) { return $(this).index()==2; }).html("Привет я третий столбец"); 
  }); 
</script> 
</head> 

<body> 
  <table class="table" border="1" cellpadding="0" cellspacing="0"> 
    <tr><td>11</td><td>12</td><td>13</td><td>14</td></tr> 
    <tr><td>21</td><td>22</td><td>23</td><td>24</td></tr> 
    <tr><td>31</td><td>32</td><td>33</td><td>34</td></tr> 
    <tr><td>41</td><td>42</td><td>43</td><td>44</td></tr> 
    <tr><td>51</td><td>52</td><td>53</td><td>54</td></tr> 
  </table> 
</body> 
</html>


2) Я в общем то, и против цикла не имел бы нечего.
К примеру так.
$("tr").each(function () { $(this).find("td:eq(2)").html("привет я столбец")});

DjDiablo 18.10.2011 22:11

Ага вот-оно идеальное решение)))
Вся фишка в nth-child( )


<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=windows-1251" /> 
<title></title> 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 


<script type="text/javascript"> 

  $(document).ready(function(){ 
     $("table tr>td:nth-child(3)").html("Привет я третий столбец");

  }); 
</script> 
</head> 

<body> 
  <table class="table" border="1" cellpadding="0" cellspacing="0"> 
    <tr><td>11</td><td>12</td><td>13</td><td>14</td></tr> 
    <tr><td>21</td><td>22</td><td>23</td><td>24</td></tr> 
    <tr><td>31</td><td>32</td><td>33</td><td>34</td></tr> 
    <tr><td>41</td><td>42</td><td>43</td><td>44</td></tr> 
    <tr><td>51</td><td>52</td><td>53</td><td>54</td></tr> 
  </table> 
</body> 
</html>

FINoM 24.10.2011 06:10

Если нужно работать с CSS, а не с атрибутами и содержимым, то юзайте тег col http://htmlbook.ru/html/col


Часовой пояс GMT +3, время: 04:52.