0

私はJqueryコーディングの学習者です。私のタスクは、SPAN要素をクリックしたときにTABLE要素を表示/非表示にすることです。動作しない下記のJqueryコードで試してみました。

HTMLコードは次のとおりです。

foreach($array as $key => $arrValue) {
  <span id="link<?=$count?>">$key</span>
    <table id="tbl<?=$count?>">

      foreach($arrValueas $key => $value) {
           <tr><td>$value</td></tr>
      }
   </table>
}

私のJqueryコードは次のとおりです。

$(function(){
   // To open/close field's group div
   $("span").each(function (i){
      i++;
      $('#link' + i).click(function (i) {
          $('#tbl' + i).toggle(800);
      });
   });
});

plsは、HTMLコードでのPHPのオープンクローズタグの問題を回避します。

4

3 に答える 3

3
$("span").each(function (){ 
    $(this).click(function () { 
        $(this).next('table').toggle(800); 
    }); 
}); 
于 2012-09-24T10:27:38.863 に答える
2

これを試して

$(function(){
   $("span").each(function (i){

      (function(i) {

          $('#link' + i).click(function() {
              $('#tbl' + i).toggle(800);
          });

      }(i));

   });
});

変数をインクリメントする必要はありません。それ以外の場合は、期待される要素i++にハンドラーを設定しません。すでに変数をインクリメントしていますlinkEach()i

于 2012-09-24T10:27:27.803 に答える
1

この方法で、2つの異なる要素グループを一致させてください。

これがjsFiddleです。

var thumbs = $('ul.thumbHolder li');
var bigImg = $('ul.imgHolder li');

thumbs.click(function() {
    var target = $(this).index();
    bigImg.each(function(i){
        if( i != target){
            $(this).fadeOut(300);
        }else{
            $(this).fadeIn(300);
        }
    });    
});​
于 2012-09-24T10:29:09.830 に答える