2012-05-14 14 views
7

Ignora la mia conoscenza di novizio in jQuery. Ho iniziato a imparare di recente e ho una sfida di fronte a me. Ho una checkbox con i nomi checkbox_0, checkbox_1 e voglio rimuovere "checkbox_" dalle stringhe in modo da utilizzare lo 0, 1 nel mio ciclo per estrarre i dati per quell'indice. GrazieRimuovi stringa da stringa jquery

aData valore mi avvisa il valore checkbox_0, checkbox_1 ecc. Quelle sono le caselle selezionate.

submitButton.on("click", function() { 
      $("Table :checked").each(function(e) { 
       var iData =Table.fnGetData(this.parentNode); 
       // Strip of the checkbox_ from the string 
       for(var i=0; i<=iData.length; i++) { 
        aData = iData[i][7]; 
       } 
       alert(aData); 
       Table.fnDraw();    

      }); 
     }); 

risposta

31

Questo è solo un JavaScript, non una cosa jQuery.

Per rimuovere la prima occorrenza del lavoro "checkbox_":

var updatedString = originalString.replace("checkbox_", ""); 

Oppure, se si sa che sarà sempre nella forma in cui "checkbox_n"n è una cifra,

var updatedString = originalString.substring(9); 

. .. che taglia i primi nove caratteri dalla corda.

In entrambi i casi, si finisce con una stringa. Se volete un numero, è possibile utilizzare parseInt:

var updatedString = parseInt(originalString.replace("checkbox_", ""), 10); 
// or 
var updatedString = parseInt(originalString.substring(9), 10); 

... o semplicemente mettere un + di fronte ad essa per causare un cast automatica (ma si noti che in questo caso, entrambe le stringhe decimali e esadecimali saranno gestito):.

var updatedString = +originalString.replace("checkbox_", ""); 
// or 
var updatedString = +originalString.substring(9); 

nota che ho scritto updatedString = originalString.blah(...); ma naturalmente è possibile sostituire il vostro riferimento, ad esempio, "originalString = originalString.blah (...);`

più da esplorare:

+0

può anche fare: originalString = originalString.replace ('checkbox_', ''); – jbduzan

+0

Questo è stato facile e veloce grazie mille. Ho un'altra domanda però, posso accumulare tutte le caselle che sono state selezionate e quindi inviare tutti quei valori come una singola chiamata Ajax invece per ciascuno? Ho Table.fnDraw() che fa una singola chiamata ajax per ogni riga selezionata – user525146

1

per rimuovere la parte checkbox_, semplicemente si può fare questo:

cbName=cbName.replace("checkbox_", ""); 

Per fare questo per tutte le caselle di controllo all'interno del ciclo .each():

var cbIndex=this.name.replace("checkbox_", ""); 
//or... 
var cbIndex=this.name.split("checkbox_").join(""); 
1

Ci sono molti modi per farlo, alcuni di loro:

$("table :checked").each(function() { 
    var theNumber = this.name.replace(/\D/g, ""); 
    var theNumber = this.name.replace(/[^\d]/g, ""); // or this 
    var theNumber = this.name.match(/\d/g).join(); // or this 
3
submitButton.on("click", function() { 
      $("Table :checked").each(function(e) { 
       var iData =Table.fnGetData(this.parentNode); 
       // Strip of the checkbox_ from the string 
       for(var i=0; i<=iData.length; i++) { 
        aData = iData[i].replace("checkbox_", ""); 
       } 
       alert(aData); 
       Table.fnDraw();    

      }); 
     });