Jquery让nth-child有一个特定的类

时间:2014-12-17 06:20:18

标签: jquery jquery-selectors

我有一个html表如下

<table id = "table1">
<tr>
    <td class="take">1</td>
    <td>2</td>
    <td>3</td>
    <td class="take">4</td>
    <td>5</td>
    <td class="take">6</td>
</tr>
<tr>
    <td class="take">11</td>
    <td>12</td>
    <td>13</td>
    <td class="take">14</td>
    <td>15</td>
    <td class="take">16</td>
</tr>
</table>

我想得到一个jquery选择器,它让第二个td在表的第一个take中具有tr类。 :)搞笑吧?但它很痛苦。

我在下面尝试过。

$("#table1").find('tr:first-child td.take:nth-child(2)').text()

但没用。

编辑:我希望td文字4不是2

我做了一个小提琴来玩。

Fiddle here

6 个答案:

答案 0 :(得分:4)

您可以使用:first定位第一行tr以及`:eq&#39;索引为1的选择器,用于定位其中的第二个td元素:

$("#table1").find('tr:first td.take:eq(1)').text();

<强> Working Demo

答案 1 :(得分:1)

  

我想得到一个jquery选择器,让我第二个td在表的第一个tr中获取类

$("#table1 tr:first td.take:eq(1)").text()

或者,

$('#table1').find('tr:first td.take:eq(1)').text()

答案 2 :(得分:0)

试试这个:您可以在表的第一行中使用td迭代所有class="take",然后检查它的索引eqaul为1(因为索引是基于0,第二个元素将具有索引= 1)

$("#table1").find('tr:first-child td.take').each(function(index){

  if(index==1)
    alert("Text is "+$(this).text());
});

<强> JSFiddle Demo

答案 3 :(得分:0)

试试这个

$("#table1").find("tr td.take:eq(1)").text();

FIDDLE

答案 4 :(得分:0)

您可以使用 eq() 选择器

直接使用
$("#table1 td.take:eq(1)").text();

<强> DEMO

答案 5 :(得分:0)

//alert("hello");
var tableRows = $("#table1").find("tr"); //fetching all rows of the tbody
//(tableRows);
$.each(tableRows, function(index, value) { //iterating all fetched rows
    //alert("hello");
    var tdValue = $(value).find("td:nth-child(3)").html();
    $(value).find("td:nth-child(3)").addClass("addclass");
});
.addclass {
  background: red;
}

table,
th,
td {
  border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<table id="table1">
  <tr>
    <td class="take">1</td>
    <td>2</td>
    <td>3</td>
    <td class="take">4</td>
    <td>5</td>
    <td class="take">6</td>
  </tr>
  <tr>
    <td class="take">11</td>
    <td>12</td>
    <td>13</td>
    <td class="take">14</td>
    <td>15</td>
    <td class="take">16</td>
  </tr>
</table>

var tableRows = $("#table1").find("tr"); //fetching all rows of the tbody
$.each(tableRows, function( index, value ) { //iterating all fetched rows
    var tdValue=$(value).find("td:nth-child(3)").html(); //can set which column required
    $(value).find("td:nth-child(3)").addClass("adding"); //can set anything
});