2012-05-14 4 views
7

Игнорировать мои знания начинающих в jquery. Я начал учиться в последнее время, и у меня есть вызов передо мной. У меня есть флажок с именами checkbox_0, checkbox_1 и вы хотите удалить «checkbox_» из строк, чтобы я использовал 0, 1 в моем цикле для извлечения данных для этого индекса. СпасибоУдалить строку из строки jquery

Значение aData предупреждает меня значение checkbox_0, checkbox_1 и т. Д. Эти флажки выбраны.

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

      }); 
     }); 

ответ

31

Это всего лишь JavaScript, а не jQuery.

Чтобы удалить первое вхождение в работу «checkbox_»:

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

Или, если вы знаете, что всегда будет в форме "checkbox_n" где n является цифра,

var updatedString = originalString.substring(9); 

. .. который отбрасывает первые девять символов из строки.

В любом случае вы получаете строку. Если вы хотите номер, вы можете использовать parseInt:

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

... или просто поставить + перед ним, чтобы вызвать автоматическое приведение (но учтите, что в этом случае, как десятичные и шестнадцатеричные строки будут обработано).

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

Обратите внимание, что я написал updatedString = originalString.blah(...);, но, конечно, вы можете заменить ссылки, например, «originalString = originalString.blah (...);`

Подробнее изучить:

+0

можно также сделать: originalString = originalString.replace ('checkbox_', ''); – jbduzan

+0

Это было легко и быстро благодарить вас очень много. У меня есть еще один вопрос, могу ли я накапливать все флажки, которые были выбраны, а затем отправлять все эти значения как один вызов ajax вместо них для каждого? У меня есть Table.fnDraw(), который делает одиночный вызов ajax для каждой выбранной строки – user525146

1

Чтобы удалить checkbox_ часть, вы можете просто сделать это:

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

Чтобы сделать это для всех флажков внутри цикла .each():

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

Есть много способов сделать это, некоторые из них:

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

      }); 
     }); 
Смежные вопросы