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);
}
);