Jquery选择ID中包含文本的所有元素

发布于 2024-10-03 01:07:29 字数 342 浏览 2 评论 0原文

我有以下代码:

 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

陪你到最终 2024-10-10 01:07:29
var aggrHTML = $('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b');
           var aggrText = aggrHTML.text();
           var newText = "Total" + aggrText.substring(3);
           aggrHTML.html(newText);
var aggrHTML = $('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b');
           var aggrText = aggrHTML.text();
           var newText = "Total" + aggrText.substring(3);
           aggrHTML.html(newText);
初吻给了烟 2024-10-10 01:07:29

实现这一点的最简单方法是

var aggrHTML = $("[id*=aggr]");
var aggrText = aggrHTML.text();
           var newText = "Total" + aggrText.substring(3);
           aggrHTML.html(newText);

如果“所有元素”当然是指所有 DOM 元素。

Simplest way to achieve that is

var aggrHTML = $("[id*=aggr]");
var aggrText = aggrHTML.text();
           var newText = "Total" + aggrText.substring(3);
           aggrHTML.html(newText);

If by "all elements" you mean all DOM elements of course.

〆一缕阳光ご 2024-10-10 01:07:29

上述所有答案都在一定程度上有效,但您的代码片段表明您希望单独更新所选的每个元素。其他答案中的代码会将每个答案设置为与第一个答案相同的值。

您需要使用 .html() 的回调签名:

$('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b').html(
    function(idx, oldHTML) {
        return 'Total' + oldHTML.substring(3);
    }
);

这将单独更新每个 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():

$('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b').html(
    function(idx, oldHTML) {
        return 'Total' + oldHTML.substring(3);
    }
);

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 lowest td elements and do a selection like $('td.aggrchild b').

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文