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

how to use jquery selectors in a for loop?

本文关键字:jquery 选择器 循环 for      更新时间:2023-09-26

我想做到这一点:

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

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

对不起,我不懂PHP,但我希望你想做一些像下面

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

+是用于连接,我希望它在PHP中是一样的。也可以将i转换为string

仅供OP理解

第2行

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

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

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

这不是很"jquery"。假设元素具有具有连续部分的id并且是有序的,您可以为每个元素提供一个公共类,并使用slice [docs]each [docs]:

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

如果你能解释清楚你的问题,你可以提供更好的解决方案。例如,给每个元素一个递增的ID似乎不是一个深思熟虑的解决方案。

注::我也不会把PHP变量放在那里,也许先把值赋给一个JavaScript变量

如果你像这样把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>