Tất cả các câu trả lời ở trên sẽ hoạt động ở mức độ nào đó, nhưng đoạn mã của bạn gợi ý rằng bạn muốn mỗi phần tử được chọn được cập nhật riêng lẻ. Mã trong các câu trả lời khác sẽ đặt mỗi câu trả lời có cùng giá trị với giá trị đầu tiên.
Bạn cần phải sử dụng chữ ký callback của .html()
:
$('TBODY[id*=aggr] > tr > td > table > tbody > tr > td > nobr > b').html(
function(idx, oldHTML) {
return 'Total' + oldHTML.substring(3);
}
);
này sẽ cập nhật mỗi phần tử b
riêng.
Một lời khuyên khác: đặt id hoặc các lớp trên các phần tử hạ thấp DOM. Điều này sẽ đơn giản hóa lựa chọn của bạn một cách đáng kể, đẩy nhanh quá trình thực hiện và viết mã của bạn. Trong trường hợp này, ví dụ: bạn có thể đặt một lớp aggrchild
trên các phần tử td
thấp nhất của mình và thực hiện lựa chọn như $('td.aggrchild b')
.
ID phải là duy nhất. Xin vui lòng làm rõ cho dù bạn có nghĩa là tất cả các yếu tố có * 'aggr' là ID hoặc * chứa *' aggr' trong ID. Nếu bạn có nhiều phần tử có cùng ID, bạn đang làm sai điều gì đó. –
anh ấy có ID giống như 'aggr1', 'aggr2', v.v. và muốn chọn tất cả những người đó –
@Scott Evernden: Đúng, tôi nên đọc tiêu đề;) @nav: Nevermind. –