2010-11-19 23 views
8

tengo el siguiente código:Jquery seleccionar todos los elementos que contienen texto en 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); 

Lo que me gustaría hacer es alterar lo anterior, así que seleccione todos los elementos cuya identificación contener 'aggr'.

Muchas gracias, Nav

+1

Las identificaciones deben ser únicas. Por favor aclare si se refiere a todos los elementos que * tienen * 'aggr' como ID o que * contienen *' aggr' en el ID. Si tiene más elementos con la misma identificación, está haciendo algo mal. –

+1

tiene ID's como 'aggr1', 'aggr2', etc. y quiere seleccionar todos esos –

+0

@Scott Evernden: Sí, debería haber leído el título;) @nav: Nevermind. –

Respuesta

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

forma más sencilla de lograrlo es

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

Si por "todos los elementos" significan que todos los elementos DOM, por supuesto.

1

Todas las respuestas anteriores funcionarán en cierta medida, pero su fragmento sugiere que desea que cada uno de los elementos seleccionados se actualice individualmente. El código en las otras respuestas establecerá cada uno de ellos al mismo valor que el primero.

Es necesario utilizar la firma de devolución de llamada de .html():

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

Esto actualizará cada elemento b individualmente.

Un consejo más: ponga los identificadores o las clases en los elementos más abajo en el DOM. Esto simplificaría su selección significativamente, acelerando la ejecución y la escritura de su código. En este caso, por ejemplo, puede poner una clase aggrchild en los elementos td más bajos y hacer una selección como $('td.aggrchild b').

Cuestiones relacionadas