如何使用Jquery选择第一个td元素及其文本

How to select first td element and its text with Jquery

本文关键字:元素 文本 td 第一个 何使用 Jquery 选择      更新时间:2023-09-26

我想在下面的HTML结构中用Jquery将"Yes!Pick me"改为"Picked",我使用了$('#myDiv>table>tr>td>table>tr').eq(1).text("Picked");,但它不起作用。有人能解释一下吗?谢谢

仅供参考,第一个表的第一个td本身包含另一个表。。。

 <div id="myDiv">
    <table>
      <tr>
        <td>
          <table>
            <tr>
              <td>Yes! Pick me!</td>
              <td>Not me..</td>
            </tr>
            <tr>
              <td>Not me..</td>
            </tr>
          </table>
        </td>
        <td>Not me..</td>
      </tr>
      <tr>
        <td>Not me..</td>
      </tr>
    </table>
  </div>

$('#myDiv>table>tr>td>table>tr>td').eq(1).text("Picked");部分起了作用,我忘记了最后一个td部分。感谢Rocket和大家的帮助。

试试这个:

$("#myDiv table table td:first").text("Picked")
$('#myDiv').find('table table td').eq(0).text(...);

#myDiv元素($('#myDiv'))开始选择,然后找到另一个表(.find('table table td'))中的一个表中的所有TD元素,然后只更改第一个元素(.eq(0))。

文件:

  • .find():http://api.jquery.com/find
  • .eq():http://api.jquery.com/eq

主要问题是您希望.eq(0)而不是.eq(1),因为.eq()是基于0的,并且您没有选择td,只选择tr

除此之外,使用>直接后代选择器会使您的选择根本不太健壮。

尝试$('#myDiv table table td').eq(0).text('Picked');

您可以尝试:

$("td:contains('Yes! Pick me!')").text("Picked"); ​

您可以使用:contains(text)选择器

$('#myDiv td table td:contains(Yes! Pick me!)').text('Picked');

但是要小心嵌套表,因为如果只使用

$('#myDiv td:contains(Yes! Pick me!)').text('Picked');

你会得到你的after单元格加上它嵌套在其中的单元格。

您的子选择器查询将不起作用,因为HTML5要求解析器在<table>元素中插入<tbody>元素,因为您忘记了将它们放在自己中。也许您应该考虑验证您的HTML?