Javascript 如何使用Jquery选择这个特定的td元素及其文本
我想用Jquery将“Yes!Pick me”改为“Pick”,在下面的HTML结构中,我使用了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>
$('#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');