开发者

how to use jquery selectors in a for loop?

开发者 https://www.devze.com 2023-04-11 23:55 出处:网络
i want to acheive this : for (i = <?php echo $current_i ?> /*then I get augmented in javascript */;i<max;i++){

i want to acheive this :

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

here i want to put 开发者_运维百科the counter I of the javascript in the selector how could i do that ???


Sorry i don't know PHP but i hope you wanted to do something like below

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

the + is for concatenation, i hope it is same in PHP. Also you could cast i to string.

Just for OP's understanding

in line 2 $('#div'+i) i is a integer type and others $(#div) are of type string. For jquery needs a string selector to retrieve a matching dom node and for that i needs to also be casted/converted to a string variable so that it could concatenate/add/attach with the prefix string which is in this example #div. in c# you add 2 strings like this var result = "#div" + i.ToString(); and i did not know PHP equivalent for + in c#,hence a sorry at the start of post. Now do you understand?


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

you can just concatenate it to the string of your selector.


That's not very "jQuery-ish". Assuming the elements have IDs with a continuing part and are in order, you can give every element a common class and use slice [docs] and each [docs]:

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

You could provide better solutions if you explain more about your problem. E.g. giving each element an increasing ID does not seem to be a deliberate solution.

P.S.: I wouldn't put the PHP variable there either, maybe assign the value to a JavaScript variable first.


it would be a lot cleaner if you split up the php and javascript like this.

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);
    }
?>

usage

<?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>
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号