Javascript 如何使用Jquery选择这个特定的td元素及其文本

Javascript 如何使用Jquery选择这个特定的td元素及其文本,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,我想用Jquery将“Yes!Pick me”改为“Pick”,在下面的HTML结构中,我使用了$('#myDiv>table>tr>td>table>tr').eq(1).text(“Pick”)但它不起作用。有人能解释一下吗?谢谢 仅供参考,第一个表的第一个td本身包含另一个表 <div id="myDiv"> <table> <tr> <td> <table>

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

仅供参考,第一个表的第一个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')。等式(1)。文本(“拾取”)成功了,我忘了最后一个td部分。感谢Rocket和所有人的帮助。

试试这个:

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

文件:

  • .find()
  • .eq()

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

除此之外,使用
直接后代选择器会使您的选择根本不太可靠

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

您可以尝试:

$("td:contains('Yes! Pick me!')").text("Picked"); ​
您可以使用:contains(文本)选择器

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

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

您将获得后面的单元格和嵌套在其中的单元格。

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

为什么不给你要选择的字段提供ID?嗨,Nysor,B/C,代码的一部分是由ASP.NET用户控件自动生成的。我只是在这里发布一个示例代码,以显示类似的结构,以便于参考。thxHi,火箭,工作得很有魅力!非常感谢!!!邋遢的我~我建议
$('table table td:first','#myDiv')
以确保您不选择其他表。:-)谢谢,bfavaretto,所以我猜在空格中,它只选择“该标记的第一次出现”,然后@EastBounder空格的意思是“后代”。所以“table table”是指另一个表中的一个表(中间有
之类的内容)
td:first
表示第一个
(在一个表的内部,在另一个表的内部,该表位于id为
id==myDiv的div的内部)。
$('#myDiv td table td:contains(Yes! Pick me!)').text('Picked');
$('#myDiv td:contains(Yes! Pick me!)').text('Picked');