0

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なぜ私を助けてください

4

2 に答える 2

0

私が遭遇した奇妙な問題の1つですが、エスケープ -すると問題が修正されます。

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

使用法:デモ

$(".commentbox").on("click",".btnSave",function(){
        var id = $(this).attr("id").split("-");
        id.shift();
        var newString = id.join('\-');
        alert(newString);
   });       
});​
于 2012-04-22T12:35:46.287 に答える
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/

于 2012-04-22T12:57:28.127 に答える