【问题标题】:What selector to use使用什么选择器
【发布时间】:2014-07-26 07:54:44
【问题描述】:

我有一张桌子,想在我做的 jquery 中到达 td 中的第二个 a

$('td a:eq(1)').text();

这只给了我第一个,但我需要所有a 中的所有td 如何不使用each() 获得它们

JsFiddle Example

【问题讨论】:

  • 你能重新表述你的问题吗,td的第二个a是什么意思
  • 你为什么不想使用each
  • @Patsy Issa 所有表格数据单元格中的第二个链接
  • @Youss - 说真的,each() 正是为此目的而设计的。就像你会问“我想洗手,不用水怎么办?” - 第一个问题是为什么?
  • var t = $('tr td:nth-child(3) a').text(); - jsfiddle.net/arunpjohny/Dh7ca/2

标签: jquery jquery-selectors


【解决方案1】:

这就是你想要的http://jsfiddle.net/SS8Gt/

html:

<table>
    <tr>
        <td>
            <a href="#">1 Link 1_1</a>
            <a href="#">1 Link 1_2</a>
        </td>
        <td>
            <a href="#">1 Link 2_1</a>
            <a href="#">1 Link 2_2</a>
        </td>
        <td>
            <a href="#">1 Link 3_1</a>
            <a href="#">1 Link 3_2</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="#">2 Link 1_1</a>
            <a href="#">2 Link 1_2</a>
        </td>
        <td>
            <a href="#">2 Link 2_1</a>
            <a href="#">2 Link 2_2</a>
        </td>
        <td>
            <a href="#">2 Link 3_1</a>
            <a href="#">2 Link 3_2</a>
        </td>
    </tr>
</table>

JS

var a = $("table").find("td");
for(var i=0; i< a.length; i++)
{
    console.log(a.eq(i).find("a").eq(1).text());
}

【讨论】:

  • 谢谢,但我一直在寻找一种更“优雅”(类似 css)的方式
【解决方案2】:

简单的解决方案:使用:nth-child() 代替:eq()。像这样:

$("td a:nth-child(1)").text();

这是updated Fiddle

【讨论】:

  • 谢谢我确实需要这个'td:nth-child(3) a' 但我根据你的回答知道了:)
猜你喜欢
  • 1970-01-01
  • 2012-07-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多