Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从其他文件更改加载的元素ID?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何从其他文件更改加载的元素ID?

Javascript 如何从其他文件更改加载的元素ID?,javascript,jquery,html,Javascript,Jquery,Html,准确地说: for(var i=0;i<10;i++){ $('.mov_c').append('<div class="move_1" id="vid_c_'+i+'"></div>'); $('#vid_c_'+i).append('<div class="move_2"></div>'); $(".move_2").load("cntent.html", function (){ $('#thee

准确地说:

for(var i=0;i<10;i++){
    $('.mov_c').append('<div class="move_1" id="vid_c_'+i+'"></div>');
    $('#vid_c_'+i).append('<div class="move_2"></div>');
    $(".move_2").load("cntent.html", function (){
        $('#theelement').attr("id", "id_"+i);
    });
}

for(var i=0;i异步加载的数据和闭包有问题。用IIFE包装代码,以正确的方式使用闭包

for(var i=0;i<10;i++){
    $(".move_2").load("cntent.html", (function (index){
        return function() {
            $('#theelement').attr("id", "id_"+ index);
        }
    })(i));
}

for(var i=0;i您可以尝试以下方法:

for(var i=0;i<10;i++){
    $('.mov_c').append('<div class="move_1" id="vid_c_'+i+'"></div>');

    var move2Div = $('<div class="move_2" data-index="'+i+'"></div>'); //defining move_2 separately with data-index holding the index value

    $('#vid_c_'+i).append(move2Div);
    $(move2Div).load("cntent.html", function (){
        var currentIndex = $(this).data("index"); //grabbing the data-index value
        $('#theelement').attr("id", "id_"+currentIndex); //updating the id with required one
    });
 }

for(var i=0;i为所有要迭代的元素提供类似的类名。
并遍历所有元素。
使用
this
关键字更改
id

<div class="CONTAINER_NAME">
    <div class="COMMAN" id="a"></div>
    <div class="COMMAN" id="b"></div>
    <div class="COMMAN" id="c"></div>
</div>

$('.CONTAINER_NAME .COMMAN_CLASS_NAME').each(function(index){

 $(this).attr("id", "id_"+index);
});

$('.CONTAINER\u NAME.COMMAN\u CLASS\u NAME')。每个(函数(索引){
$(this.attr(“id”,“id_u3;”+索引);
});

您可以向我们展示您的HTML。并让我们知道您到底想要实现什么?您正在进行10个AJAX调用=>在某些DIV中加载内容并尝试更改一个元素的id。您的“#threeelement”是否是在您的主视图中,还是它是您的响应的一部分?从上面的代码中,我认为您永远不会在页面上同时有10个不同的
元素
。因为无论何时
.load
方法的成功回调都将被调用;您先前添加的
元素
将被删除,新的html元素将出现并加入side
.move_2
。请考虑容器页面上有多少元素具有类
move_2
?这可能会导致基于回调方法执行顺序的随机行为。这不是一个好主意……我不这么认为。只有当我们得到响应时,计数器才会递增。正确,但响应的顺序是什么获得的onses?这取决于服务器和与服务器的连接。绝对不能保证响应将按照与请求相同的顺序进行处理。当然,如果顺序不重要,那么这是一种方法。但是我们不知道(从问题中)如果顺序重要或不重要,最好假设它重要。因此我猜它同样适用于您建议的答案…;)!用真正的ajax调用@Anton证明它。不知道为什么,但这甚至不会改变元素idstry
concole.log
,在设置attrbite之前确保您在这里有正确的id。日志显示了什么?已经有了
console.log(“index:“+index)
值从1到10,有什么问题吗?你想达到什么目的,你能澄清一下吗?只是索引值显示正确,但元素id根本没有改变
for(var i=0;i<10;i++){
    $('.mov_c').append('<div class="move_1" id="vid_c_'+i+'"></div>');

    var move2Div = $('<div class="move_2" data-index="'+i+'"></div>'); //defining move_2 separately with data-index holding the index value

    $('#vid_c_'+i).append(move2Div);
    $(move2Div).load("cntent.html", function (){
        var currentIndex = $(this).data("index"); //grabbing the data-index value
        $('#theelement').attr("id", "id_"+currentIndex); //updating the id with required one
    });
 }
<div class="CONTAINER_NAME">
    <div class="COMMAN" id="a"></div>
    <div class="COMMAN" id="b"></div>
    <div class="COMMAN" id="c"></div>
</div>

$('.CONTAINER_NAME .COMMAN_CLASS_NAME').each(function(index){

 $(this).attr("id", "id_"+index);
});