2010-11-19 2 views
8

У меня есть следующий код: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); 

То, что я хотел бы сделать, это изменить выше, поэтому я выбрать все элементы, идентификатор содержат «Aggr».

Большое спасибо, Nav

+1

ID должны быть уникальными. Просьба уточнить, имеете ли вы в виду все элементы, которые * имеют * 'aggr' как ID или что * содержат *' aggr' в ID. Если у вас больше элементов с одинаковым идентификатором, вы делаете что-то неправильно. –

+1

у него есть ID как «aggr1», «aggr2» и т. Д. И хочет выбрать все из них. –

+0

@Scott Evernden: Да, я должен был прочитать заголовок;) @nav: Nevermind. –

ответ

13
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); 
8

Простейший способ добиться того, что является

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

Если на "все элементы" вы имеете в виду все элементы DOM конечно.

1

Все приведенные выше ответы будут работать в определенной степени, но ваш фрагмент подсказывает, что вы хотите, чтобы каждый из выбранных элементов был обновлен индивидуально. Код в других ответах установит каждое из них на то же значение, что и первое.

Вы должны использовать обратный вызов подпись .html():

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

Это будет обновлять каждый b элемент по отдельности.

Еще один совет: введите идентификаторы или классы на элементах ниже DOM. Это значительно упростит ваш выбор, ускорит выполнение и запись вашего кода. В этом случае, например, вы можете поставить класс aggrchild на свои самые низкие td элементы и сделать выбор, например $('td.aggrchild b').

Смежные вопросы