Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 如何动态创建<;a>;使用js的标签_Javascript_Html - Fatal编程技术网

Javascript 如何动态创建<;a>;使用js的标签

Javascript 如何动态创建<;a>;使用js的标签,javascript,html,Javascript,Html,我正在创建一个html页面,需要在点击按钮时动态创建一个链接列表。我知道如何在之前知道要创建的链接数时创建此列表,如下所示: //For 4 tags: var mydiv = document.getElementById("myDiv"); var aTag = document.createElement('a'); aTag.innerHTML = "link1 text"; aTag.setAttribute('onclick',"func()"

我正在创建一个html页面,需要在点击按钮时动态创建一个链接列表。我知道如何在之前知道要创建的链接数时创建此列表,如下所示:

    //For 4 tags:
    var mydiv = document.getElementById("myDiv");
    var aTag = document.createElement('a');
    aTag.innerHTML = "link1 text";
    aTag.setAttribute('onclick',"func()");
    mydiv.appendChild(aTag);
    var bTag = document.createElement('b');
    bTag.innerHTML = "link2 text";
    bTag.setAttribute('onclick',"func()");          
    mydiv.appendChild(bTag);
    var cTag = document.createElement('c');
    cTag.innerHTML = "link3 text";
    cTag.setAttribute('onclick',"func()");
    mydiv.appendChild(cTag);
    var dTag = document.createElement('d');
    dTag.setAttribute('onclick',"func()");
    dTag.innerHTML = "link4 text";
    mydiv.appendChild(dTag);
function main(num_anchors) {
    var mydiv = document.getElementById("myDiv");
    for (var i = 0; i < num_anchors; i += 1) {
        mydiv.appendChild(createAnchor(i));
    }
}

但问题是,计数将在运行时和函数调用时已知,我需要标识调用函数的链接的id。。有人能帮忙吗

是的,可以在运行时执行此操作。 JQuery提供了非常有用的dom操作。因此,您可以遍历dom,过滤所需内容

你可以在这里找到很多有用的函数。

它看起来像这样

 $( document ).ready(function() {

   $( "a" ).each(function( index ) { 

    // enter code here..
   }
});

一旦加载DOM,就会调用document.ready

我不知道您是否收到要在锚中显示的HTML,但无论如何,这应该可以完成以下工作:

function createAnchor(id, somethingElse) {
    var anchor = document.createElement('a');
    anchor.innerHTML = "link" + id + " text";
    anchor.setAttribute("onclick", "func()");
    return anchor;
}
然后调用如下函数:

    //For 4 tags:
    var mydiv = document.getElementById("myDiv");
    var aTag = document.createElement('a');
    aTag.innerHTML = "link1 text";
    aTag.setAttribute('onclick',"func()");
    mydiv.appendChild(aTag);
    var bTag = document.createElement('b');
    bTag.innerHTML = "link2 text";
    bTag.setAttribute('onclick',"func()");          
    mydiv.appendChild(bTag);
    var cTag = document.createElement('c');
    cTag.innerHTML = "link3 text";
    cTag.setAttribute('onclick',"func()");
    mydiv.appendChild(cTag);
    var dTag = document.createElement('d');
    dTag.setAttribute('onclick',"func()");
    dTag.innerHTML = "link4 text";
    mydiv.appendChild(dTag);
function main(num_anchors) {
    var mydiv = document.getElementById("myDiv");
    for (var i = 0; i < num_anchors; i += 1) {
        mydiv.appendChild(createAnchor(i));
    }
}
function main(num\u锚定){
var mydiv=document.getElementById(“mydiv”);
对于(变量i=0;i

当然,这段代码可以改进,但这只是为了说明这是怎么可能的。

是什么给了你列表数据,即a/b/c/d标签。
非常有用。。是否有任何方法可以确定哪个标记(链接id)实际调用了函数,因为所有标记都调用相同的方法,并且识别哪个标记调用了函数很重要?是的,您可以这样做:替换
code
anchor.setAttribute(“onClick”,“func()”)
code
with
code
anchor.onclick=function(e){var a=e.currentTarget;}<代码>代码因此var a是当前单击的锚,然后您可以执行您想要的操作。