2010-11-19 24 views
8

ho il seguente codice:Jquery selezionare tutti gli elementi che contengono testo in 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); 

Quello che vorrei fare è alterare quanto sopra in modo da selezionare tutti gli elementi il ​​cui id contenere 'Aggr'.

Molte grazie, Nav

+1

Gli ID devono essere univoci. Per favore chiarisci se intendi tutti gli elementi che * hanno * 'aggr' come ID o che * contengono *' aggr' nell'ID. Se hai più elementi con lo stesso ID, stai facendo qualcosa di sbagliato. –

+1

ha ID come "aggr1", "aggr2", ecc. E vuole selezionare tutti quelli –

+0

@Scott Evernden: Sì, avrei dovuto leggere il titolo;) @nav: Nevermind. –

risposta

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

modo più semplice per raggiungere questo obiettivo è

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

Se per "tutti gli elementi" si intendono tutti gli elementi DOM, naturalmente.

1

Tutte le risposte di cui sopra funzioneranno in una certa misura, ma il frammento di codice suggerisce che si desidera che ciascuno degli elementi selezionati venga aggiornato singolarmente. Il codice nelle altre risposte imposterà ciascuno di essi sullo stesso valore del primo.

è necessario utilizzare la firma di callback di .html():

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

Questo aggiornerà ogni elemento b singolarmente.

Un altro consiglio: inserire ID o classi sugli elementi più in basso nel DOM. Ciò semplificherebbe significativamente la tua selezione, velocizzando l'esecuzione e la scrittura del tuo codice. In questo caso, ad esempio, è possibile inserire una classe aggrchild sugli elementi td inferiori ed eseguire una selezione come $('td.aggrchild b').

Problemi correlati