Jquery выделить все элементы, содержащие текст в ID - PullRequest
8 голосов
/ 19 ноября 2010

У меня есть следующий код:

 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

Ответы [ 3 ]

13 голосов
/ 19 ноября 2010
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 голосов
/ 19 ноября 2010

Самый простой способ достичь этого -

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

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

1 голос
/ 20 ноября 2010

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

Вам необходимо использовать подпись обратного вызова .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').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...