7

同じクラスのボタンがページに複数あります。ボタンをクリックすると、最も近い入力ボックスの値を取得したいと思います(同じクラスの入力ボックスとボタンがページに複数あることを思い出してください)。

私は持っています:

    $(".deletepostbutton").click(function() {

            var deleteid = $(this).closest('.deleteid').attr('value');

  });


<div class="microblogpostactions">
     <input type="text"  name="deleteid" class="deleteid" value="'.$row['id'].'" />
     <a href="Javascript:void[0]" class="deletepostbutton">Delete</a>
     </div>

<div class="microblogpostactions">
     <input type="text"  name="deleteid" class="deleteid" value="'.$row['id'].'" />
     <a href="Javascript:void[0]" class="deletepostbutton">Delete</a>
     </div>

ユーザーがリンクをクリックしたときに、最も近い入力の値を取得して、変数をそれに等しくするにはどうすればよいですか????

4

3 に答える 3

13

.prev()それらが互いに隣接していることが確実な場合に使用します。(これが最速のはずです。)

 var deleteid = $(this).prev().attr('value');

これは前の要素を取得します。

間に別の要素が存在する可能性がある場合は、次を使用できます.siblings()

 var deleteid = $(this).siblings('.deleteid').attr('value');

これにより、クラスと同じ内部のすべての兄弟が取得されます。<div>deleteid

于 2010-08-28T17:38:59.027 に答える
3
$(this).parent().find('.deleteid').attr('value');
于 2010-08-28T17:40:52.547 に答える
0
$(this).parent().find('.deleteid').attr('value');

パフォーマンスに問題が発生する可能性があります(実際に発生します)。例えば:

$(this).parent().find('.deleteid').val(10);
alert($(this).parent().find('.deleteid').val());

.deleteidの以前の値(10ではない)を返す場合があります

于 2011-09-21T18:20:30.650 に答える