2016-05-04 5 views
-1

jqueryをループして値を取得したいときに問題があります。この私のコードjqueryがループしていないときに値を取得する

<?php 
    for($x=0; $x < count($results); $x++){ 
?> 
    <span id="delete">Delete</span> 
    <input type="hidden" id="comm" name="comm" value="<?=$results[$x]['id'];?>"> 
<?php 
    } 
?> 

と私はをクリックし、「削除」、この状態、この私のjqueryのコード

$("#delete").click(function() { 
    var comm = $("#comm").val(); 
    alert(comm); 
}); 

、初めて私は値を取得するが、私はもう一度クリックしたときに、私は何も値

を取得いけません
+1

IDは一意である必要があります。 –

答えて

0

まず、idが繰り返されないようにコードを変更:

<?php 
    for($x=0; $x < count($results); $x++){ 
?> 
    <span class="delete">Delete</span> 
    <input type="hidden" class="comms" id="comm<?php echo $x; ?>" name="comm<?php echo $x?>" value="<?=$results[$x]['id'];?>"> 
<?php 
    } 
?> 

、あなたのjavascriptのコードで:

$(".delete").click(function() { 
    var comm = $(this).find("+ input").val(); 
    alert(comm); 
}); 
0

問題は、idがdeleteの最初の要素を選択していることです。 IDはあなたのページで一意でなければなりません。

私はあなたが値を得るために隠された入力を使用しているのを見ます。この目的でのみ使用している場合は、省略して、削除ボタンにデータを追加することができます(data-*属性)。

PHP:

<?php for($x=0; $x < count($results); $x++){ ?> 
    <span class="delete" data-id="<?=$results[$x]['id'];?>">Delete</span> 
<?php } ?> 

のjQuery:

$(".delete").click(function() { 
    var comm = $(this).data('id'); 
    alert(comm); 
}); 

利点は、あなたのIDが数値であれば、それは同様にあなたのためにキャストされるということです。

+0

その作業、ありがとう、ウズベキョン – user3585448

関連する問題