如何在for循环中使用jquery选择器?

时间:2011-10-09 16:43:56

标签: javascript jquery

我想实现这个目标:

for (i = <?php echo $current_i ?> /*then I get augmented in javascript */;i<max;i++){
$('#anyid****')./* my actions goes here */
}

这里我想把javascript的计数器I放在选择器中 我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

抱歉,我不懂PHP,但我希望你能做类似下面的事情

for (i = <?php echo $current_i ?> ;i<max;i++){
$('#div'+i)/*do the rest*/
}

+用于连接,我希望它在PHP中是相同的。你也可以把我变成字符串。

仅供OP理解

第2行中的

$('#div'+i) i是整数类型,其他$(#div)是字符串类型。对于jquery需要一个字符串选择器来检索匹配的dom节点,并且i也需要被转换/转换为字符串变量,以便它可以连接/添加/附加前缀字符串,在本例中{ {1}}。在c#中你添加2个字符串,如#div,我不知道c#中的var result = "#div" + i.ToString();的PHP等价物,因此在帖子开头就很抱歉。现在你明白了吗?

答案 1 :(得分:2)

for (i = <?php echo $current_i ?> /*then I get augmented in javascript */;i<max;i++){
    $('#anyid' + i)./* my actions goes here */
}

你可以将它连接到选择器的字符串。

答案 2 :(得分:1)

那不是“jQuery-ish”。假设元素具有带有连续部分的ID且按顺序排列,则可以为每个元素提供一个公共类,并使用slice [docs]each [docs]

$('.commonClass').slice(<?php echo $current_i ?>, max + 1).each(...

如果您解释有关问题的更多信息,可以提供更好的解决方案。例如。给每个元素一个增加的ID似乎不是一个有意识的解决方案。

P.S。:我也不会把PHP变量放在那里,也许首先将值赋给JavaScript变量。

答案 3 :(得分:1)

如果你像这样拆分php和javascript,那将会更加清晰。

js_var.php

<?php
    $phpvars = array(
        'max' => 12,
        'fop' => 22
    );

    function phpvar($key = NULL){ 
        global $phpvars;
        return ($key) 
            ? json_encode($phpvars[$key])
            : json_encode($phpvars);
    }
?>

使用

<?php include('phpvars.php');?>
<script type="text/javascript">
    window.phpvars = <?=phpvar()?>;

    var max = phpvars.max;

    for (var i=0;i<max;i++){
        console.log(i);
    }
    console.log(php);
</script>