如何使用Jquery选择第一个td元素及其文本
How to select first td element and its text with Jquery
我想在下面的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?
相关文章:
- 识别切换条元素文本并在量角器中单击它
- 数组函数不适用于从元素文本创建的JavaScript数组
- 将元素文本替换为子项中的值
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 使用 jQuery 从目标页面而不是当前页面获取元素文本
- 使用jquery为html元素文本的每个字符设置动画
- regex替换元素文本
- 在 Firefox 中单击鼠标时无法选择所有输入元素文本
- 如何确定 HTML 元素文本中“新行”的位置
- 在量角器中将元素文本转换为对象
- 无法使用 jquery 获取 xml 元素文本值
- jQuery - 仅获取父元素文本,而不获取子元素文本
- 单击其他元素(文本输入)时显示下拉列表
- 使用自定义绑定更新元素文本
- Android驱动程序的scrollTo和scrollToExact 方法的问题.方法不会滚动到所需的元素文本,而是滚动
- 选择元素文本并添加逗号
- 获取不带 html 标记的页面元素文本,但保留换行符
- 删除元素文本中的最后一个字符
- 如何按顺序获取所有元素文本
- 使用AngularJS将元素文本复制到title属性的干净方法