JQuery döngü - değeri yakalamak

2 Cevap php

Ben php bu döngü çalışan ama çıkışı sırasında bir jquery tıklama işlevi kullanıyorum. Nasıl i tıklanan $ hangi örneği kaydedebilirsiniz. Ben $ (this) kullandığınızda bu kimliği döndürür.

$ ('# Pid-form'). Val ('$ frame_id [$ i]') aslında i değer olarak istediğiniz ama bunu kullanmak veya kullanmak bir değişkene dönüştürmek için nasıl emin değilim numarası vardır .

for($i = 0; $i < $numRecords2; $i++){

$prod_id = $_SESSION['prod_array'][$frame_id[$i]];
echo"

$('#frame$frame_id[$i]').click(function() {
	$('#top-left-frame').html('<img src=\"$upper_left[$i]\" alt=\"\" />');
	$('#top-mid-frame').css('background-image','url($upper_middle[$i])'); 
	$('#top-right-frame').html('<img src=\"$upper_right[$i]\" alt=\"\" />');
	$('#mid-left-frame').css('background-image','url($middle_left[$i])'); 
	$('#mid-right-frame').css('background-image','url($middle_right[$i])'); 
	$('#bottom-left-frame').html('<img src=\"$bottom_left[$i]\" alt=\"\" />');
	$('#bottom-mid-frame').css('background-image','url($bottom_middle[$i])'); 
	$('#bottom-right-frame').html('<img src=\"$bottom_right[$i]\" alt=\"\" />');
	$('#frame-select').html('$prod_id');
	$('#pid-form').val('$frame_id[$i]');
	$('#oa_id-form').val('$prod_id');
	var frameState = $(this).attr('id');
	$.cookie('frameState', frameState, { expires: 7 });		
    alert($.cookie('frameState') + ' was clicked.');
 });
";
 }

2 Cevap

Eğer "çerçeve $ frame_id [$ i]" tıklanan nesnenin kimliği, muhtemelen ile id ayıklamak edilir:

$(this).attr('id').replace(/[^\[]*\[([^\]]*)\]$/, '$1')

Bu kimliği işlemek ve parantez arasında sadece değer dönecekti.

Neden zaten komut her yerde yaptığım gibi değil, sadece sabit kod?

NOT: Bu çok kötü bir tasarım IMHO olduğunu; yerine dizideki her öğe için tüm bu oluşturmak yerine, tüm bu yok bir statik JS işlevi oluşturmak, ve sonra ekstra bilgiler iletmekten parametreleri ile aramalısınız.