Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 仅向列表中添加新的列表项_Javascript_Html - Fatal编程技术网

Javascript 仅向列表中添加新的列表项

Javascript 仅向列表中添加新的列表项,javascript,html,Javascript,Html,我对JavaScript还相当陌生,所以我正在寻找最简单的解决方案(也不是寻找jQuery解决方案) 我正在尝试将单击的列表项添加到新列表中,前提是单击的列表项不在新列表中。我已成功地将单击的列表项添加到新列表中,但我无法创建一个功能正常的if语句来检查当前项的新列表 window.onload=函数(){ var ul=document.getElementById('bulk'); ul.addEventListener('click',函数(e){ var目标=e.target; whi

我对JavaScript还相当陌生,所以我正在寻找最简单的解决方案(也不是寻找jQuery解决方案)

我正在尝试将单击的列表项添加到新列表中,前提是单击的列表项不在新列表中。我已成功地将单击的列表项添加到新列表中,但我无法创建一个功能正常的
if
语句来检查当前项的新列表

window.onload=函数(){
var ul=document.getElementById('bulk');
ul.addEventListener('click',函数(e){
var目标=e.target;
while(target&&target.parentNode!==ul){
target=target.parentNode;
如果(!target){return;}
}
如果(target.tagName=='LI'){
var节点=document.createElement(“LI”);
var textnode=document.createTextNode(target.id);
var textarea=document.getElementById(“test1”);
如果(!textarea.querySelector(target.id)){
node.appendChild(textnode);
document.getElementById(“test1”).appendChild(节点);
}
}
});
}



    因为在一个文档中不应该有多个具有相同ID的元素,所以我更改了一些内容,使每个元素的唯一ID位于数据集属性
    数据ID

    除此之外,还需要使用
    querySelector()
    来确定这样的节点是否已经在目标列表中

    var ul=document.getElementById('bulk');
    var destination=document.getElementById(“test1”);
    ul.addEventListener('click',函数(e){
    var目标=e.target;
    while(target&&target.parentNode!==ul){
    target=target.parentNode;
    如果(!目标){
    回来
    }
    }
    如果(target.tagName=='LI'){
    var id=target.dataset.id;
    var节点=document.createElement(“LI”);
    node.dataset.id=id;
    var textnode=document.createTextNode(“id为“+id”的元素);
    if(destination.querySelector(“[data id=“+id+”])){
    回来
    }
    node.appendChild(textnode);
    destination.appendChild(节点);
    }
    });
    


    一个问题是您正在创建具有重复ID的元素。这通常会引起问题。第二个问题(可能是实际问题)是,您正在使用querySelector搜索id,但忘记了“#”(因此,
    if(!textarea.querySelector(“#”+target.id))