join方法在jquery中不起作用

时间:2012-04-22 12:30:03

标签: jquery

JSFiddle

$(".commentbox").on("click",".btnSave",function(){


         var id = $(this).attr("id").split("-");
            alert(id);
            id.shift();
            alert(id);
            var newString = id.join('-');
            alert(newString);


   });       
});​

输入为btnSave-88eC4B8D2-8F96-4EB5-B42E-08C540D7F171

输出:88eC4B8D2,8F96-4EB5,B42E,08C540D7F171

虽然它适用于btnReply按钮为什么 请帮帮我

2 个答案:

答案 0 :(得分:0)

我遇到的一个奇怪的问题,但逃避-解决了问题。

var newString = id.join('\-');

用法:Demo

$(".commentbox").on("click",".btnSave",function(){
        var id = $(this).attr("id").split("-");
        id.shift();
        var newString = id.join('\-');
        alert(newString);
   });       
});​

答案 1 :(得分:0)

这是一个棘手的问题吗? :)


问题在于这行代码

<input type='button' class='btnSave' value='Save' id='btnSave-" + id + "' /> "

此处传递的id实际上是id="btnSave-88C4B8D2,8F96,4EB5,B42E,08C540D7F171",因为id是一个数组,并且该数组已转换为逗号分隔的字符串,因为您将其设置为字符串属性。现在你在那个字符串上调用split( - ),它给你“btnSave”和“88C4B8D2,8F96,4EB5,B42E,08C540D7F171”。现在你shift并删除btnSave,留下单个成员“88C4B8D2,8F96,4EB5,B42E,08C540D7F171”,然后在该单个字符串上调用join(“ - ”),它根本不会改变任何东西。所以,你所要做的就是改变上面所示的内容,就像这样

<input type='button' class='btnSave' value='Save' id='btnSave-" + newString + "' /> "

在这里小提琴:http://jsfiddle.net/naveen/XHr6e/