Jquery选择ID中包含文本的所有元素
我有以下代码:
var aggrHTML = $('TBODY#aggr > tr > td > table > tbody > tr > td > nobr > b');
var aggrText = aggrHTML.text();
var newText = "Total" + aggrText.substring(3);
aggrHTML.html(newText);
我想要做的是更改上面的内容,以便选择 id 包含“aggr”的所有元素。
非常感谢, 导航
I have the following code:
var aggrHTML = $('TBODY#aggr > tr > td > table > tbody > tr > td > nobr > b');
var aggrText = aggrHTML.text();
var newText = "Total" + aggrText.substring(3);
aggrHTML.html(newText);
What I would like to do is alter the above so I select all elements whose id contain 'aggr'.
Many Thanks,
Nav
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
实现这一点的最简单方法是
如果“所有元素”当然是指所有 DOM 元素。
Simplest way to achieve that is
If by "all elements" you mean all DOM elements of course.
上述所有答案都在一定程度上有效,但您的代码片段表明您希望单独更新所选的每个元素。其他答案中的代码会将每个答案设置为与第一个答案相同的值。
您需要使用
.html()
的回调签名:这将单独更新每个
b
元素。还有一条建议:将 id 或类放在 DOM 下方的元素上。这将显着简化您的选择,加快代码的执行和编写速度。例如,在这种情况下,您可以将类
aggrchild
放在最低的td
元素上,并进行类似$('td.aggrchild b')< 的选择/代码>。
All the above answers will work to an extent, but your snippet suggests that you want each of the elements selected to be updated individually. The code in the other answers will set each of them to the same value as the first one.
You need to use the callback signature of
.html()
:This will update each
b
element individually.One more piece of advice: put ids or classes on elements lower down the DOM. This would simplify your selection significantly, speeding up the execution and writing of your code. In this case, for instance, you could put a class
aggrchild
on your lowesttd
elements and do a selection like$('td.aggrchild b')
.