1

クリックすると削除する削除ボタンを含む各liのリストがあります。理由はわかりませんが、ボタンはリストの最初の項目にしか適用できず、残りのボックスには適用できません。どこで間違ったのだろうか。

以下は私のphpコードスクリプトとjavascriptです

foreach($biz_watchlist as $biz_watchlist1){
  echo '<li class="biz_watch">';
  echo '<table style="width:100%">';
  echo '<td style="width:50%">';
  echo $biz_watch_details['5'];
  echo ' | <a id="remove_watch">remove</a>';
  echo '</td>';
  echo '<td>';
  echo '<span style="float:right">'.$biz_watch_details['19'].'</span>';
  echo '</td>';
  echo '</table>';
  echo '</li>';
}

  <script type="text/javascript">
  $(document).ready(function(){
     $('#remove_watch').click(function(){
      $(this).closest('.biz_watch').fadeOut("slow");
     });
  });
  </script>
4

2 に答える 2

3

$('#remove_watch')IDを検索しています。そのため、最初のオブジェクトの結果しか得られません。idは一意である必要があります。複数の場所で使用したい場合は、代わりにクラスに変更してください。

 echo ' | <a id="remove_watch">remove</a>';

する必要があります

 echo ' | <a class="remove_watch">remove</a>';

その後

$('.remove_watch').click(function(){
于 2012-05-12T08:03:50.197 に答える
0

ページ上でN回繰り返している要素でIDを使用しています!W3C HTML仕様に従って、IDは一意である必要があります。同じIDを持つ要素を複数持つことはできません。その場合、これらの要素に対する操作は未定義になります。つまり、このシナリオでは各ブラウザーの動作が異なります。

代わりに、繰り返している要素のクラスを使用してください。クラス属性は、操作をグループ化することを目的としています。

 $('.remove_watch').click(function(){
     $(this).closest('.biz_watch').fadeOut("slow");
 });


 <a class="remove_watch">remove</a>
于 2012-05-12T08:04:19.063 に答える