Jquery循环 - 捕获值

时间:2009-05-13 21:11:49

标签: php jquery

我在php中运行此循环,但在输出期间使用jquery click函数。如何记录单击$ i的哪个实例。当我使用$(this)时,它返回id。

$('#pid-form')。val('$ frame_id [$ i]')实际上有我想要的数字作为值,但我不知道如何使用它或将其转换为变量我可以用。

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 个答案:

答案 0 :(得分:0)

为什么不简单地对其进行硬编码,因为您已经在脚本中的其他位置进行了硬编码?

注意:这是一个非常糟糕的设计恕我直言;您应该创建一个静态JS函数来完成所有这些操作,然后使用参数调用它以传递额外信息。而不是为数组中的EACH元素创建所有这些元素。

答案 1 :(得分:0)

如果“frame $ frame_id [$ i]”是被点击对象的id,你可以用以下内容提取id:

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

这将操纵id并仅返回括号之间的值。