【问题标题】:How to select first td element and its text with Jquery如何使用 Jquery 选择第一个 td 元素及其文本
【发布时间】:2012-03-15 07:49:29
【问题描述】:

我想在以下 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&gt;table&gt;tr&gt;td&gt;table&gt;tr&gt;td').eq(1).text("Picked"); 部分可以解决问题,我忘记了最后一个 td 部分。感谢 Rocket 和大家的帮助。

【问题讨论】:

  • 你为什么不给你想要选择的字段的ID?
  • 嗨 Neysor,b/c 部分代码是由 ASP.net 用户控件自动生成的。我只是在这里发布一个示例代码以显示类似的结构以便于参考。谢谢
  • 嗨,Rocket,工作就像一个魅力!万分感谢!!!马虎我~

标签: javascript html jquery html-table jquery-selectors


【解决方案1】:

试试这个:

$("#myDiv table table td:first").text("Picked")

【讨论】:

  • 我建议$('table table td:first', '#myDiv') 确保您不要选择其他表。 :-)
  • 谢谢,bfavaretto,所以我猜是空格,这样它只选择“该标签的第一次出现”呢?
  • @eastboundr 空格的意思是“后代”。所以“table table”是指另一个表中的一个表(中间有任何东西,比如&lt;tr&gt;&lt;td&gt;)。 td:first 表示第一个&lt;td&gt;(在一个表内,在另一个表内,在一个带有id == myDiv 的div 内)。
【解决方案2】:
$('#myDiv').find('table table td').eq(0).text(...);

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

文档:

【讨论】:

    【解决方案3】:

    主要问题是你想要.eq(0) 而不是.eq(1) 因为.eq() 是从0 开始的,而且你没有选择td,只有tr

    除了使用&gt; 直接后代选择器之外,您的选择根本就不是很健壮。

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

    【讨论】:

      【解决方案4】:

      你可以试试:

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

      【讨论】:

        【解决方案5】:

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

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

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

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

        你会得到你之后的单元格和它嵌套的单元格。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2012-03-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-25
            • 2011-04-09
            相关资源
            最近更新 更多