2

したがって、配列からPHPでdivを生成しています:

echo "<div id='parentdiv'>";
 for($counter = 0; $counter < count($list); $counter++){
         echo "<div>".$list['important_info']."</div>";

   }
  echo "</div>";//parentdiv

各 div に独立していくつかのクリック機能を追加したいと考えています。つまり、クリック時に実行されるアクションは div に依存し、さらに重要なのは配列のインデックス $list; に依存します。

PHP配列のインデックスに基づいて、各divにIDを付けたいと思います。だから私はできる

echo "<div id='"."divindex_".$counter."'>".$list['important_info']."</div>";

ここで、「divindex_」は、id フォームが数値で始まるのを防ぐために使用されます。

次に、jQuery で各 div のクリック関数を記述できると思います。

ただし、問題は $list のサイズが可変であるため、div がいくつあるかわかりません。だから私が考えているのは、次のようなものです。

 $("#parentdiv div").click(function(){
            var id = split($(this).attr('id').split("_")[1];//get the php index from the id
            //do something with the id, e.g. ajax or whatever
  });

これを行うより良い方法はありますか?私がやっていることは奇妙であまり良い考えではないと思うなら、私は理解しています. しかし、これを他の方法で行う方法がわかりません。どんな助けでも感謝します。

4

3 に答える 3

0

単に使用してください:

$("#parentdiv div").click(function(){
            var id  = $(this).index(); //index of div, 0 based
            var val = $(this).text();  //content of div, if you need it
});

一意IDのsを追加する必要はありません:)。

デモ: http: //jsfiddle.net/q9TaJ/

ドキュメント: http ://api.jquery.com/index/

于 2013-03-13T11:27:59.220 に答える
0

変数を html 属性として渡すことができます。次に、クリック イベントを 1 つのクラスにバインドします。

<div class="divs" data-id="myid"></div>

jqueryで

 $('.divs').click(function(){
console.log($(this).data('id));    
});
于 2013-03-13T12:05:42.023 に答える
0

まず、出力を適切にエスケープしてください。

echo '<div id="parentdiv">';
for ($counter = 0; $counter < count($list); $counter++){
    echo sprintf('<div data-id="%d">%s</div>',
        $counter,
        htmlspecialchars($list['important_info'])
    );
}
echo '</div>';//parentdiv

data-idまた、次のコードを使用して jQuery で簡単にアクセスできる特別な属性も使用しています。

$('#parentdiv > div').on('click', function() {
    var id = $(this).data('id');
});
于 2013-03-13T11:36:31.987 に答える