2017-02-23 14 views
0

私はcloneコマンドを使って新しいHTML要素を動的に作成しています。コードはすべての子を持つ新しい親を作成し、各子は新しい名前とid(現在の名前/ id +1)を取得します。これは、フォームを投稿するときに、新しい正しい名前が表示されるため、うまくいきます。JS作成要素のID /名前を取得

この中で、入力=ファイルボタンがカスタマイズされるように、画像を使用して入力=ファイルからのクリックをリダイレクトします。しかし、現在、画像のいずれかをクリックすると、同じ元のファイル=アップロードが呼び出されます。

私はファイルのID /名前を知る必要があります=アップロード - それはオリジナルかクローンかにかかわらず、クローンがクリックされても元の名前しか得られないようです。ここで

はフィドルです: https://jsfiddle.net/msith718/xfuv79b3/71/

$(document).on('click', '.uploadBtn', function(){ 
    alert(this.id); 
    }); 

新しいクローンを作成するには、+をクリックして、画像1がクリックされたの名前/ IDを取得しようとします。それはいつも同じ名前であるようです。

ありがとうございました。

答えて

2

親が変更IDを使用する場合は、アラートをこのアラートに置き換えてください。

alert($(this).closest('.fingers').attr('id')); 
+0

hmmでデモが更新されました。それはうまくいくようです。今、私は "finger"を削除し、 "2"を残すために結果(finger2)を解析することができるはずです。それから私は "uploadBtnOld"の代わりに "uploadBtnOld2"のクリックを呼び出すために連結することができます...右?それとももっと効率的な方法がありますか? – msith718

2

あなたのID作成コードが間違っているためです。

あなたはthis.idimgButtonあるので、それは数で終わることを期待として正規表現は、それと一致しないため、if内部コードは、ボタンのために実行されることはありません

var regex = /^(.+?)(\d+)$/i; 
var id = this.id || ""; 
var match = id.match(regex) || []; 
if (match.length == 3) { 
    //snipped code 
} 

を行います。

最も簡単な解決策は、最初のボタンのidの末尾に0を追加して、imgButton0にすることです。その後、あなたのコードは実行されます。

https://jsfiddle.net/xfuv79b3/76/

+0

これは本当に良いです。 –

+0

ありがとうございます!私のjavascriptは最強ではありません。私はさまざまな場所で見つけたコードからこれを引き出しました。この最後の部分が私を狂ってしまいました。今私はなぜそう思うと思う。それは私が見つけたコードの中にあったからです。これはちょうど私が必要としているようです。私は正しいファイル=今すぐアップロードすることができるはずです。もう一度、ありがとうございました。 – msith718

+0

よろしくお願いします。たぶん私はこれをさらに簡単にすることができます。私の計画は、イメージのIDを知った後、イメージ名を解析して数字だけを残すことでした。その番号をファイルアップロードのIDに連結し、正しい番号を呼び出します。イメージと同じ親にあるファイルアップロードのIDを取得する方法はありますか? – msith718

関連する問題