2016-06-18 7 views
0

テーブルに複数の削除ボタンがあり、各ボタンには固有のIDがあります。私はJavaScriptを介してこの値を取得しようとしていますが、私はそれを全く動かすことができません。javascriptを使用してボタンから値を取得しようとしています

function createRow(movie) { 
     movie.NewDate = new Date(movie.ReleaseDate); 
     return '<tr><td><img class="movieImage" src="' + 
      movie.ImageLink + 
      '" alt="' + 
      movie.Title + 
      ' Image" style="width:50px;height:75px">' + 
      '<td>' + 
      movie.Title + 
      '</td><td>' + 
      movie.NewDate.toLocaleDateString("en-US") + 
      '</td><td><button type="button" class="removeButton" value="' + movie.DVDID + '">Delete</button></td></tr>'; 
    } 

そして、ここで私はIDを取得しようとしていますJSです:

ここ

は、jsのセクションが正常に動作し、正しいHTMLを(これは、各映画のために走っている)にロードされています

$(document) 
.ready(function() { 
    var deleteButtons = $(".removeButton"); 
    deleteButtons.each(function (index) { 
     var currentButton = $(this); 
     var buttonValue = currentButton.val(); 
     currentButton.click(function() { 
      alert(buttonValue); 
     }); 
    }); 
}); 

は、私はちょうど適切なアラートが十分であろう取得今

Click one of multiple buttons, put value in text inputを経由して最後のスニペットを見つけました。

答えて

0

$( "#tableId")。( "クリック"、 ".removeButton"、function(){alert($(this).attr( "value"));} )

この "on"は、クリックがトリガーされたときに、すべての ".removeButton"要素を所定の関数でバインドします。

+0

それはうまくいっています。ありがとう! –

0

使いのブラウザではJavaScriptが次のようになります。

$(document).ready(function() { 
    var deleteButtons = $(".removeButton"); 
    deleteButtons.on('click', function() { 
     alert($(this).attr('value')); 
    }); 
}); 

をまた、あなたはJavaScriptでdynamiclyこれらのボタンを追加するので、あなたは新しい行を追加した後、ボタンのクリックイベントを再バインドする必要があるかもしれません。また、バインディングはボタンhtmlをDOMにロードした後に行う必要があります。

+0

:だから、あなたがボタンを見つけることができるようにするためには、あなたがそうのように、ドキュメントのスコープを見て、あなたは上をクリックしたボタン(クラス)を見つける必要があるでしょうそれを試したが、まだボタンからの応答はありません –

+0

申し訳ありません私は間違っていると思う、あなたはそれをクリックした後に読んだり、価値を得る必要がありますか? –

+0

これは正しいです。また、バインドする前にあなたのコメントが表示されませんでしたが、このスクリプトはスクリプトセクションの最後のものですので、ページが完全に読み込まれてから実行されるはずです。 –

0

ボタンを動的に作成しているので、javascriptが起動されたときにDOMに存在しなかったので、正しくボタンに到達できません。ただ、

$(document).on('click', '.removeButton', function(){ 
    console.log($(this).val()) 
}) 

See fiddle for complete example

関連する問題