2012-05-14 25 views
7

Ignorar mis conocimientos de novato en jquery. Empecé a aprender recientemente y tengo un desafío frente a mí. Tengo una casilla de verificación con los nombres checkbox_0, checkbox_1 y quiero eliminar "checkbox_" de las cadenas para que use el 0, 1 en mi ciclo para extraer los datos para ese índice. GraciasEliminar cadena de la cadena jquery

aEl valor de datos me alerta el valor checkbox_0, checkbox_1 etc. esas son las casillas de verificación seleccionadas.

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();    

      }); 
     }); 

Respuesta

31

Esto es solo algo de JavaScript, no de jQuery.

Para retirar la primera aparición de la obra "checkbox_":

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

O si usted sabe que siempre estará en la forma en que "checkbox_n"n es un dígito,

var updatedString = originalString.substring(9); 

. ..que corta los primeros nueve caracteres de la cadena.

En cualquier caso, terminas con una cadena. Si usted quiere un número, puede utilizar parseInt:

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

... o simplemente poner un + frente a ella para causar un reparto automático (pero tenga en cuenta que en ese caso, ambas cadenas decimales y hexadecimales serán manejado):.

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

Tenga en cuenta que he escrito updatedString = originalString.blah(...); pero por supuesto se puede reemplazar su referencia, por ejemplo, "originalString = originalString.blah (...);`

Más para explorar:

+0

También lo puede: originalString = originalString.replace ('checkbox_', ''); – jbduzan

+0

Eso fue fácil y rápido muchas gracias. Sin embargo, tengo otra pregunta: ¿puedo acumular todas las casillas de verificación que se han seleccionado y luego enviar todos esos valores como una sola llamada ajax en lugar de cada uno? Tengo Table.fnDraw() que hace una sola llamada ajax para cada fila seleccionada – user525146

1

Para retirar la parte checkbox_, simplemente puede hacer esto:

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

Para hacer esto para todas las casillas de verificación dentro del bucle .each():

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

Hay muchas maneras de hacerlo, algunos de ellos:

$("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();    

      }); 
     });