从字符串中删除字符串 jQuery

11

请忽略我在 jQuery 方面的初学知识。最近我开始学习,并且面前有一个挑战。我有一个名为 checkbox_0、checkbox_1 的复选框,想要从字符串中去掉“checkbox_”,这样我可以使用循环中的 0、1 提取该索引的数据。谢谢。

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();             
                 
            });
        });
4个回答

50

这只是一个 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);

...或者在前面加上+来自动转换(但请注意,在这种情况下,十进制和十六进制字符串都将被处理):

...or just put a + in front of it to cause an automatic cast (but note that in that case, both decimal and hex strings will be handled):

var updatedString = +originalString.replace("checkbox_", "");
// or
var updatedString = +originalString.substring(9);
请注意,我已经写了updatedString = originalString.blah(...);,但你当然可以替换你的引用,比如说 "originalString = originalString.blah(...);`。

更多探索:


可以这样做:originalString = originalString.replace('checkbox_',''); - jbduzan
那很容易且快速,非常感谢。不过我还有一个问题,我能否累计所有已选择的复选框,然后将所有这些值作为单个Ajax调用发送,而不是针对每个值都进行单独的调用?我有Table.fnDraw(),它为每个已选择的行执行单个Ajax调用。 - user525146

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

            });
        });

2
为了删除 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接