Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 Appenshild 对于(var i=0;i_Javascript - Fatal编程技术网

javascript Appenshild 对于(var i=0;i

javascript Appenshild 对于(var i=0;i,javascript,Javascript,我将遵循以下原则: <div id = model_id0> <a> xxxxxx</a></div> <div id = model_id1> <a> xxxxxx</a></div> var i=0, m=myJSONObject.model, l=米长, models=document.getElementById(“models”); 对于(;i

我将遵循以下原则:

<div id = model_id0> <a> xxxxxx</a></div> 
<div id = model_id1> <a> xxxxxx</a></div> 
var i=0,
m=myJSONObject.model,
l=米长,
models=document.getElementById(“models”);
对于(;i
除非您特别需要对锚点本身执行某些操作(而不是设置其innerHTML),否则无需为其创建对元素的引用。如果确实需要执行特定于该锚点的操作,那么在这种情况下,请执行以下操作:

编辑:根据您的评论,您确实想对锚做些什么,所以使用这个(现在已更新)选项-假设锚始终是具有所需ID的div的子级。之所以将“model_ID”+i作为字符串输入,是因为这正是传递到HTML中的内容-文档不知道“i”是什么在javascript之外:

var i = 0,
    m = myJSONObject.model,
    l = m.length,
    models = document.getElementById("models");

for(; i < j; i++) {
    var model = m[i];
    var create_div = document.createElement("div");
    create_div.id = "model_id" + i;
    create_div.innerHTML = "<a>" + model.model_name + "</a>";
    models.appendChild(create_div);
}
var i=0,
m=myJSONObject.model,
l=米长,
models=document.getElementById(“models”);
对于(;i
两条建议:

1.)不将innerHTML分配给model_idx div,而是将模型名称分配给其子级a。第二,不要在每个循环中将其附加到DOM中,而是在完成循环后执行此操作,以便通过以下方式最小化DOM更新的频率:

var i = 0,
    m = myJSONObject.model,
    l = m.length,
    models = document.getElementById("models");

for(; i < j; i++) {
    var model = m[i];
    var create_div = document.createElement("div");
    var create_anchor = document.createElement("a");
    create_div.id = "model_id" + i;
    create_anchor.innerHTML = model.model_name;
    if(window.addEventListener) {
        create_anchor.addEventListener("click", function() {
            getModelData(1, this.parentNode.id);
        }, false);
    } else {
        create_anchor.attachEvent("onclick", function() {
            getModelData(1, this.parentNode.id);
        });
    }
    create_div.appendChild(create_anchor);
    models.appendChild(create_div);
}

我正在使用这个create_div.innerHTML=“”;那么,将model_id+i作为参数传递给函数时会出现什么问题呢?它将字符串传递给函数,即每个model_id0、model_id1都应该传递,但它也将model_id+i作为字符串传递,以包含此部分的解决方案。很高兴提供了帮助-如果您满意,请记住接受答案(单击勾号);)我正在使用这个create_div.innerHTML=“”;那么,当将model_id+i作为参数传递给函数时会出现什么问题呢?它将一个字符串传递给函数,即每个model_id0、model_id1都应该传递,但它将model_id+i作为字符串传递
var i = 0,
    m = myJSONObject.model,
    l = m.length,
    models = document.getElementById("models");

for(; i < j; i++) {
    var model = m[i];
    var create_div = document.createElement("div");
    create_div.id = "model_id" + i;
    create_div.innerHTML = "<a>" + model.model_name + "</a>";
    models.appendChild(create_div);
}
var i = 0,
    m = myJSONObject.model,
    l = m.length,
    models = document.getElementById("models");

for(; i < j; i++) {
    var model = m[i];
    var create_div = document.createElement("div");
    var create_anchor = document.createElement("a");
    create_div.id = "model_id" + i;
    create_anchor.innerHTML = model.model_name;
    if(window.addEventListener) {
        create_anchor.addEventListener("click", function() {
            getModelData(1, this.parentNode.id);
        }, false);
    } else {
        create_anchor.attachEvent("onclick", function() {
            getModelData(1, this.parentNode.id);
        });
    }
    create_div.appendChild(create_anchor);
    models.appendChild(create_div);
}
objContainer = document.createElement('div');
for(....)
{
     var create_div = document.createElement('div');
     create_div.id = 'model_id'+i;
     var create_anchor = document.createElement('a');
     create_anchor.innerHTML = myJSONObject.model[i].model_name;
     create_div.appendChild(create_anchor);
     objContainer.appendChild(create_div);        
}
document.getElementById('models').appendChild(objContainer);