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

Jquery选择ID中包含文本的所有元素,jquery,jquery-selectors,Jquery,Jquery Selectors,我有以下代码: 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); 我

我有以下代码:

 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”的所有元素

非常感谢,,
导航

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

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

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

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

您需要使用以下的回调签名:

这将分别更新每个
b
元素


还有一条建议:将ID或类放在DOM下面的元素上。这将大大简化您的选择,加快代码的执行和编写。例如,在这种情况下,您可以在最低的
td
元素上放置一个类
aggrchild
,并进行类似
$('td.aggrchild b')

的选择,ID应该是唯一的。请澄清您是指ID为
aggr
的所有元素还是ID中包含
aggr
的所有元素。如果您有更多具有相同ID的元素,则说明您做错了什么。他具有类似“aggr1”、“aggr2”等ID,并希望选择所有元素those@Scott是的,我应该读一下标题;)@导航:没关系。
var aggrHTML = $("[id*=aggr]");
var aggrText = aggrHTML.text();
           var newText = "Total" + aggrText.substring(3);
           aggrHTML.html(newText);
$('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b').html(
    function(idx, oldHTML) {
        return 'Total' + oldHTML.substring(3);
    }
);